既存の稼働中DBのテーブルに、カラムを追加

kokoroです。

symfonyで既存のテーブルにカラムを追加して、モデルの再構築を行う手順。
現在も稼働中のシステムのDBのテーブルの作業なので、びくびくしながら行います。

config/schema.xmlにカラムを記述して追加し、

symfony propel-build-model

が、

/config以下にschema.yml があると、上記がうまくいかない。DBを定義してる設定ファイルがふたつあると、両方読み込もうとしてしまい、エラーになる。

元々ある場合は、一旦ディレクトリから外してしまうか、削除しても、schema.xmlから作成できる

symfony propel-convert-yml-schema

ので、まあなくてもおk

※成功してるかの確認は、変更を加えたテーブルの、

lib/model/{変更を加えたテーブル名}.php
lib/model/{変更を加えたテーブル名}Peer.php
lib/model/map/{変更を加えたテーブル名}MapBuilder.php
lib/model/om/Base{変更を加えたテーブル名}.php
lib/model/om/Base{変更を加えたテーブル名}Peer.php

この辺りに、追加したカラムが記述されているはずなのを、確認。

次に、

symfony propel-build-sql
symfony propel-insert-sql

で、SQLが発行される。

configと同階層にあるdata/sql

の中にあるSQLをphpMyAdminで作ったDBの中で実行。

以上。

※shema.xmlの時点で余計なもの(schema.ymlを生成)してしまって、うまくモデルが作れず悩んでいたので、メモ。

関連する投稿

1 件のコメント


ルーティングのURLに.が含まれる場合。

routing.ymlで定義したいアドレスにピリオドが含まれる可能性がある場合の解決方法です。

http://student.jobweb.jp/test.test
など、/test.testの部分に、ドットが含まれていると、404 not foundが帰ってきます。
web/.htaccessの、.を制限している部分をコメントアウトすることで、解決できます。




# we skip all files with .something
# comment the following 3 lines to allow periods in routes
RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule .* - [L]


の、

RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule .* - [L]

の部分を、コメントアウト。




# we skip all files with .something
# comment the following 3 lines to allow periods in routes
#RewriteCond %{REQUEST_URI} \..+$
#RewriteCond %{REQUEST_URI} !\.html$
#RewriteRule .* - [L]


無事、ドットを含むアドレスをルーティングできました!

関連する投稿

コメントはまだありません




SetPageWidth