【发布时间】:2014-03-08 17:40:27
【问题描述】:
在我的 Web 应用程序中,我对 mysql 数据库进行了一些更改,我想在我的 Web 应用程序中反映相同的更改。我知道我可以使用数据库迁移,但是我应该在哪里运行迁移命令?我应该在 /migrations 目录中创建一个用于更改表的程序,如果是这样,我应该在哪里运行命令“yiic migrate”以反映更改?我应该如何解决这个问题?
【问题讨论】:
-
你从 yiic 所在的地方运行它。
在我的 Web 应用程序中,我对 mysql 数据库进行了一些更改,我想在我的 Web 应用程序中反映相同的更改。我知道我可以使用数据库迁移,但是我应该在哪里运行迁移命令?我应该在 /migrations 目录中创建一个用于更改表的程序,如果是这样,我应该在哪里运行命令“yiic migrate”以反映更改?我应该如何解决这个问题?
【问题讨论】:
您将需要终端或一些命令行界面。在那里你可以输入(例如):
php /Users/Name/Sites/SiteDir/public_html/protected yiic migrate create table_changes
这将在 protected/migrations 文件夹中创建一个名为“table_changes”的新的空白迁移。如果您遇到任何错误,请确保 yiic.php 使用的控制台配置文件具有适合您环境的正确数据库设置,并包含对迁移类的引用:
'commandMap'=>array(
'migrate'=>array(
'class'=>'system.cli.commands.MigrateCommand',
'migrationPath'=>'application.migrations',
'migrationTable'=>'yii_migration',
'connectionID'=>'db',
),
),
我建议首先通过迁移进行所有数据库更改 - 这样您就可以“吃自己的狗粮”并确保它有效。
【讨论】: