我在laravel 4.2项目中工作,现在我想在现有表用户中添加列。现在我想添加另一列,当我运行迁移命令时,我总是收到相同的消息"无需迁移。" 以下是我的迁移模式代码
public function up()
{
Schema::table('users', function($table) {
$table->string('dob')->nullable()->change();
});
}
我在终端
中运行的Commant php artisan migrate --path=/database/migrations/2017_08_29_130700_add_colum_user_is_black_list.php
我还运行以下命令
php artisan migrate
但是当我运行上面的命令时,我收到以下错误
SQLSTATE [42S01]:基表或视图已存在:1050表'用户'已存在
答案 0 :(得分:2)
您需要按照以下步骤使用laravel迁移在现有表中添加列。
Laravel 3 +,4 +
使用CLI进行迁移(使用特定名称以避免与现有模型发生冲突)
php artisan migrate:make add_dob_users_table --table=users
Laravel 5 +
使用CLI进行迁移(使用特定名称以避免与现有模型发生冲突)
php artisan make:migration add_dob_to_users
Laravel 3 +
使用Schema::table()
方法(因为您正在访问现有表,而不是创建新表)并添加如下列:
public function up()
{
Schema::table('users', function($table) {
$table->string('dob')->nullable()->change();
});
}
添加回滚选项:
public function down()
{
Schema::table('users', function($table) {
$table->dropColumn('dob');
});
}
Laravel 4 +,5 +
使用Schema::table()
方法(因为您正在访问现有表,而不是创建新表)并添加如下列:
public function up()
{
Schema::table('users', function(Blueprint $table) {
$table->string('dob')->nullable()->change();
});
}
添加回滚选项:
public function down()
{
Schema::table('users', function(Blueprint $table) {
$table->dropColumn('dob');
});
}
Laravel 3 +,4 +,5 +
最后以
运行迁移 php artisan migrate
创建和运行迁移的文档是
Laravel 3 +
Laravel 4,5