首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将迁移标记为在laravel中运行

将迁移标记为在laravel中运行
EN

Stack Overflow用户
提问于 2018-02-24 10:07:57
回答 4查看 3.6K关注 0票数 8

我的迁移失败了,所以我只是在MySQL工作台中手动运行了一个查询。

是否有artisan命令将迁移标记为已完成?因此,当我运行将来的迁移时,它会跳过我知道不需要运行的那些迁移。

我可以使用此命令列出它们及其状态,并查看哪些已运行,哪些未运行:

代码语言:javascript
复制
php artisan migrate:status 

如果没有命令,我可以手动在数据库迁移表中插入一个条目。(但不是目前的迁移:P )

我想我也可以...删除迁移。

EN

回答 4

Stack Overflow用户

发布于 2018-10-18 03:04:16

我刚刚完成了以下操作:

  1. 注释掉了YourMigrationClass::up()方法的内容。如下所示:

类AddSessionIdToActivitiesTable扩展迁移{ public function up() { /*注释出来: Schema::table('activities',function (Blueprint $table) { $table->integer('session_id')->nullable();});*/ }取消注释

  • Run:

it's "Ran?":php artisan migrate:status

  • (optional)取消注释该方法的内容,使其作为您的VCS中的文档。
票数 10
EN

Stack Overflow用户

发布于 2019-01-29 18:21:46

您写的是直接在数据库中运行迁移的sql,所以我假设对于您来说,再运行两个语句也是可以的。

对于laravel5.7(以及一些更低的版本),您需要在数据库中填充迁移信息(在migrations表中)。

您需要的信息是migration (不带.php扩展名的文件名)和batch号(用于决定在回滚迁移时一次运行哪些迁移)

首先,您必须查看最后一个批号是:

代码语言:javascript
复制
SELECT MAX(batch) from migrations;

假设上面的查询返回42,那么我们必须插入批号为42 + 1 = 43的数据

假设您想要标记为run的迁移是database/migrations/2019_01_29_091850_update_jobs_table_for_laravel_5_3.php

要填充需要运行的信息,请执行以下操作:

代码语言:javascript
复制
-- note that you should not include the .php extension
INSERT INTO migrations VALUES ("2019_01_29_091850_update_jobs_table_for_laravel_5_3", 43);

然后运行php artisan migrate:status会将迁移报告为run。

也许你可以用一个查询来完成这个任务……我将把这项任务留给sql专家进行评论。

票数 5
EN

Stack Overflow用户

发布于 2018-02-24 10:16:28

目前(Laravel <= 5.6),没有更新数据库的命令来将迁移标记为运行。您只需手动完成此操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48958629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档