php - 使用迁移添加约束 - yii 框架

标签 php mysql yii

我想向我的表用户添加约束:用户名 => 唯一,密码 => 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)');
  }
}

最佳答案

使用alterColumn方法。

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

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

关于php - 使用迁移添加约束 - yii 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29029119/

相关文章:

php - php中如何计算两个不同长度数组的相似度百分比

php - 使用 Toxi 解决方案计算出现次数

mysql - 无法访问 mysqldump

javascript - PHP页面: Dropdown always selects the first value

php - 在子目录 Yii 中导入模型

用于 RESTful API 的 YII URL 管理器

php - 属性 "CHasOneRelation.limit"未定义

php - 从另一个函数的范围访问变量?

php - SQL查询的奇怪问题

php - 时区 : Mysql save UTC and PHP read America/Sao_Paulo