【问题标题】:Laravel migrate fresh specific migrationLaravel 迁移新的特定迁移
【发布时间】:2021-02-28 14:46:43
【问题描述】:

我正在尝试迁移我的 Laravel 应用程序中的一些数据库表。我正在使用第三方库https://github.com/spatie/laravel-schedule-monitor,它似乎坏了,升级时需要重新迁移。如果我在本地运行php artisan migrate:fresh,它会工作得很好,但是在我的所有其他迁移中,我不想在生产环境中覆盖和转储我的其他表中的数据。

我想migrate:fresh一个具体的迁移...

更新

尝试在表上运行refresh 命令时,会发生以下情况...

【问题讨论】:

    标签: php laravel laravel-5 laravel-8


    【解决方案1】:

    你可以使用php artisan migrate:refresh --path=

    例子

    php artisan migrate:refresh --path=database/migrations/2020_09_02_000000_create_users_table.php
    

    如果你需要回滚:

    php artisan migrate:rollback  --path=/database/migrations/2020_09_02_000000_create_users_table.php
    

    【讨论】:

    • 似乎可以跳过迁移,但是当它遇到我的迁移时,我只会得到Base table or view already existsfresh 通常不会这样做,它只会删除表并重新迁移。奇怪的是,我正在使用的软件包已针对 Laravel 8 进行了更新,但升级效果不佳(因此我想重新迁移)
    • 是的,我最初在本地运行了php artisan migrate:fresh,它可以运行我的所有迁移,包括我遇到问题的迁移。刚刚尝试过 - 添加指定路径,该路径有效,但如果我继续使用php artisan migrate,则它会简单地覆盖我在其他表中的所有数据,就好像我将来要添加新数据一样。
    • 当我运行它时,我得到一个错误...Base table or view already exists 因为是的,它确实存在,但我希望它删除并覆盖该表,fresh 通常会这样做,但根据上述删除数据。
    • 运行刷新后查看说明中的附图
    • 尝试回滚,我可以回滚但无法重新迁移单个表。我不能触摸我的用户表,否则他们将无法登录。
    【解决方案2】:

    另一种解决方案是复制该迁移中的内容并将其删除,然后重新进行该迁移并将数据粘贴到该迁移并运行php artisan migrate

    别忘了从 phpmyadmin 中删除表格

    【讨论】:

    • 你到底是什么意思?
    • 如果我尝试删除表,会出现错误:MySQL said: Cannot delete or update a parent row: a foreign key constraint fails
    猜你喜欢
    • 2018-01-10
    • 2018-04-20
    • 2018-08-01
    • 2019-04-09
    • 2016-09-11
    • 2016-06-19
    • 2019-12-27
    • 2022-09-29
    • 2017-11-17
    相关资源
    最近更新 更多