我正在尝试向postgres中的“users”表添加一个新列,我使用的是Laravel 5.1,新列将是一个时间戳,默认为“CURRENT_timestamp”,这是我的迁移文件:
public function up(){
Schema::table('users', function (Blueprint $table) {
$table->timestamp('last_activity_at')->default(DB::raw('CURRENT_TIMESTAMP'));
});
}
我的用户表有20000多条记录
当运行php artisan migrate时,它只是卡住了,什么也没发生,服务器响应,postgres响应,但用户的表似乎被锁定,我必须重新启动服务器。
问题发生在两个不同的服务器上,dev和prod,在prod中,我被要求确认运行迁移,然后它就卡住了
我做了更多的测试,删除了默认值并使用了nullable()
Schema::table('users', function (Blueprint $table) {
$table->timestamp('last_activity_at')->nullable();
});
当迁移运行时,我检查postgrespg_stat_activity,它返回以下记录:
datid | 16384
datname | apiprod
pid | 14183
usesysid | 16386
usename | apiprod
application_name |
client_addr | ::1
client_hostname |
client_port | 49618
backend_start | 2017-07-04 18:54:19.143425+02
xact_start | 2017-07-04 18:54:19.165856+02
query_start | 2017-07-04 18:54:19.165872+02
state_change | 2017-07-04 18:54:19.165873+02
waiting | t
state | active
backend_xid |
backend_xmin | 14765396
query | alter table "users" add column "last_activity_at" timestamp(0) without time zone null
似乎它正在等待获取access exclusive
lock,我检查了locks表,但它没有返回任何记录。
我想你的迁移文件遇到了一个内部错误,当我们使用迁移的时候,它卡住了
使用此命令:
php artisan迁移:刷新或php artisan迁移:回滚
不要手动删除列,然后再次迁移文件
我正在使用laravel将列位置添加到用户表中。我创建了一个名为2017\u 05\u 18\u 025207\u添加\u用户名\u字段\u到\u用户\u表的新迁移。。并对其进行了修改,以描述模式以及所有的up()和down()。但是,当我尝试使用PHP artisan migrate进行迁移时。它没有反映在数据库中。 这段代码是我在新迁移中写的。
我已经创建了一个迁移文件,并在数据库中创建了表。现在,我想向现有迁移文件添加新列。我要做的是,打开迁移文件并在up()函数中添加列名,添加列名后,运行命令 如何向现有表中添加新列?
Iam正在尝试向现有集合添加列。Iam使用MongoDB Iam运行以下迁移: } 当我执行“php artisan migrate”时,得到的响应很好: 然后,当我去“robomongo 3t studio”验证新专栏是否已创建时,我看不到它 我错过了什么吗。我对mongodb和laravel是新来的,对我来说太赤裸了。
问题内容: 我不知道如何使用Laravel框架向现有数据库表添加新列。 我试图使用…来编辑迁移文件。 在终端中,我执行和。 如何添加新列? 问题答案: 要创建迁移,您可以在Artisan CLI上使用migration:make命令。使用特定名称以避免与现有模型冲突 对于Laravel 3: 对于Laravel 5+: 然后,您需要使用该方法(在访问现有表而不是创建新表时)。您可以添加如下所示的列
然而,我发现手动操作很不方便。有没有办法告诉Room:我不会接触任何现有的表,所以数据是安全的。请为我创建迁移?
我不知道如何使用Laravel框架将新列添加到现有的数据库表中。 我试图使用…编辑迁移文件。。。 在终端,我执行和。 如何添加新列?