Script de migration

Bonjour,

je vois que le generate model me créé un script 002_create_matable.rb.
Par contre la méthode create_table :matable ne contient pas le schema de
ma
table mysql.
Il n’est pas censé générer le schéma complet de ma table ?
Il y a juste :
create_table :matables do |t|
# t.column :name, :string
end

Salut,

Les migrations sont là pour faire des modifications sur ton schema.
Ajouter/enlever une colonne/table en gros. Pour en comprendre
l’utilité et le fonctionnement :
http://jamis.jamisbuck.org/articles/2005/09/27/getting-started-with-
activerecord-migrations
http://glu.ttono.us/articles/2005/10/27/the-joy-of-migrations
http://wiki.rubyonrails.com/rails/pages/UnderstandingMigrations

Tu pourras trouver le schema de ta bdd dans le fichier db/schema.rb
(je pense qu’il faut faire une migration ou avoir les modèles
correspondants à tes tables pour que ce fichier soit généré).
Attention la syntaxe de schema.rb et des migrations sont différentes.
schema.rb est la représentation de l’état de la bdd et les migrations
décrivent des modifications à apporter à la bdd.

Nicolas

Le 17 juil. 06 à 18:12, Frédéric Logier a écrit :

Le script de migration généré est un squelette de base, il ne tient
aucunement compte de ce qui existe déjà dans ta base.
Vue ta question je suppose que tu as déjà créé ta table en base. Le
principe de fonctionnement est plutôt de générer ton modèle, puis de
remplir la migration pour indiquer les colonnes de ta table et enfin
d’exécuter ta migration pour que cette table soit créée dans la base.

Stéphane

La logique est maintenant la suivante :

  1. je créé mon model par “./script/generate model MonModel”
    -> parmi les fichiers créés on trouve app/model/mon_model.rb et
    db/migrate/00x_create_table_mon_models.rb
  2. je détaille mon fichier db/migrate/00x_create_table_mon_models.rb
  3. je lance “rake migrate”

Et Il y a maintenant l’option “–skip-migration” pour ne pas générer le
script de migration.

Si tu as déjà une table dans ta db et que tu veux écrire un fichier de
migration, tu peux par exemple copier les infos qu’il faut depuis ton
fichier db/schema.rb vers ton fichier db/migrate/xxx.rb.

++

yk

Frédéric Logier a écrit :

On 7/17/06, Yann K. [email protected] wrote:

script de migration.

Si tu as déjà une table dans ta db et que tu veux écrire un fichier de
migration, tu peux par exemple copier les infos qu’il faut depuis ton
fichier db/schema.rb vers ton fichier db/migrate/xxx.rb.

Merci bien à tous pour vos infos, effectivement le rake db_schema_dump
me permet d’avoir un schema de ma base au format Rails.