2010-02-14 4 views
1

J'ai développé une application ROR en utilisant MySQL et je veux maintenant qu'elle utilise Postgres à la place.Base de données Rails de MySQL à Postgres

Je l'ai utilisé Navicat pour le transfert de données de la base de données MySQL à Postgres, et mis à jour database.yml avec les paramètres d'environnement Postgres.

Quand je lance l'application ROR, et essayer de vous connecter ou créer un utilisateur, je reçois l'erreur suivante:

RuntimeError: ERROR C23502 Mnull value in column "id" violates not-null constraint FexecMain.c L2229 RExecConstraints: INSERT INTO "users

Merci

Répondre

2

On dirait que vous avez eu une AUTO_INCREMENT id colonne dans votre MySQL base de données. Il s'agit d'une fonctionnalité non standard ANSI, de sorte qu'elle ne fonctionnera pas nécessairement sur d'autres bases de données.

Pour faire la même chose sur Postgres, vous pouvez utiliser un type de colonne SERIAL (ou une séquence explicite équivalent).

+0

Comment puis-je résoudre ce problème, est-il quelque chose dans le code que je dois changer ou dans la base de données, ou les deux? Merci – RewbieNewbie

+0

Cela a fonctionné: utilisateurs TABLE ALTER ALTER set id COLONNE DEFAULT NEXTVAL ('users_id_seq') – RewbieNewbie

Questions connexes