使用migration-yii框架添加约束

时间:2015-03-13 09:47:11

标签: php mysql yii

我想向表格用户添加约束:username => unique, password => NOT NULL

我想使用迁移正确使用,我无法找到。

我可以删除表并使用约束再次创建它或直接在命令行中创建它但我将丢失数据。

我查看了这里的文档: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)');
  }
}

2 个答案:

答案 0 :(得分:1)

使用alterColumn方法。

alterColumn('MyTable', 'username', 'varchar(32) unique');
alterColumn('MyTable', 'password', 'varchar(32) not null');

注意:您需要再次重新指定完整的列结构,而不能只是添加新的添加内容,因此您可能希望将varchar(32)内容更改为当前结构。

答案 1 :(得分:0)

然后将表导出为仅包含数据和结构的数据。 导出包含数据的表后。

删除你的表并使用添加的约束创建相同的表。

现在导入导出的表格。

完成!!!!!