使用迁移添加约束 - yii 框架
Add constraint using migration - yii framework
我想为我的 table 用户添加约束:username => unique, password => NOT NULL
。
我想使用迁移来正确处理它,但我找不到方法。
我可以删除 table 并使用约束或直接在命令行中重新创建它,但我会丢失数据。
我查看了此处的文档:http://www.yiiframework.com/doc/api/1.1/CDbMigration 但没有找到任何内容。
我正在使用 yii 框架和 MySQL 数据库。
解决方案:
class m150311_075741_update_users extends CDbMigration
{
public function up()
{
$this->alterColumn('user', 'username', 'varchar(255) unique');
$this->alterColumn('user', 'password', 'varchar(255) not null');
}
public function down()
{
$this->alterColumn('user', 'username', 'varchar(255) unique');
$this->alterColumn('user', 'password', 'varchar(255)');
}
}
然后导出您的 table 仅用于不包含数据和结构的数据。
导出 table 数据后。
删除您的 table 并添加相同的 table 约束。
现在导入导出的 table。
完成 !!!!!
使用alterColumn方法。
alterColumn('MyTable', 'username', 'varchar(32) unique');
alterColumn('MyTable', 'password', 'varchar(32) not null');
注意:您需要再次重新指定完整的列结构,您不能只向其添加新内容,因此您可能需要将 varchar(32) 的内容更改为当前结构。
我想为我的 table 用户添加约束:username => unique, password => NOT NULL
。
我想使用迁移来正确处理它,但我找不到方法。
我可以删除 table 并使用约束或直接在命令行中重新创建它,但我会丢失数据。
我查看了此处的文档:http://www.yiiframework.com/doc/api/1.1/CDbMigration 但没有找到任何内容。
我正在使用 yii 框架和 MySQL 数据库。
解决方案:
class m150311_075741_update_users extends CDbMigration
{
public function up()
{
$this->alterColumn('user', 'username', 'varchar(255) unique');
$this->alterColumn('user', 'password', 'varchar(255) not null');
}
public function down()
{
$this->alterColumn('user', 'username', 'varchar(255) unique');
$this->alterColumn('user', 'password', 'varchar(255)');
}
}
然后导出您的 table 仅用于不包含数据和结构的数据。 导出 table 数据后。
删除您的 table 并添加相同的 table 约束。
现在导入导出的 table。
完成 !!!!!
使用alterColumn方法。
alterColumn('MyTable', 'username', 'varchar(32) unique');
alterColumn('MyTable', 'password', 'varchar(32) not null');
注意:您需要再次重新指定完整的列结构,您不能只向其添加新内容,因此您可能需要将 varchar(32) 的内容更改为当前结构。