From the daily archives: 水曜日, 8月 10, 2011

この前までmigrationするときは必ずと言っていいほど参考にしていたブログが見れなくなってしまったのでこちらに書いておきます。

■下準備(最初の一度だけやればいいこと)

  1. スキーマを書く(schema.yml)
    例)

    Tag:
      options:
        collate: utf8_general_ci
        charset: utf8
      columns:
        tagId:     { type: integer(5), primary: true, autoincrement: true}
        keyword:   { type: string }
  2. モデル作成
     symfony doctrine:build --all
  3. migration用のモデル作成
    symfony doctrine:generate-migrations-models
  4. DBのつくりなおし
    symfony doctrine:drop-db
    symfony doctrine:build-db
  5. 最初のmigrate
    symfony doctrine:migrate

■DBを変更時毎回やること

  1. スキーマ変更(schema.yml)
    例)

    Tag:
      options:
        collate: utf8_general_ci
        charset: utf8
      columns:
        tagId:     { type: integer(5), primary: true, autoincrement: true}
        keyword:   { type: string }
        count:     { type: integer }
  2. migration用の差分クラスを作成
    symfony doctrine:generate-migrations-diff
  3. migrateする
    symfony doctrine:migrate
  4. モデル、フォーム、フィルターの変更
    symfony doctrine:build --model --forms --filters

これでmigrate完了

ちなみに、project:deployで適用他のサーバーにデータを持っていったときはDBだけ変更すればいいので

symfony doctrine:migrate

だけでOK。
もちろん

symfony cc

は忘れないように。

ちなみに見れなくなってしまったブログはこちら
Symfonyのmigrate機能|IからOへ
いつか見れるようになおってるといいな