【问题标题】:Add column to existing table on laravel project assistance在 laravel 项目帮助的现有表中添加列
【发布时间】:2020-11-29 17:52:37
【问题描述】:

我正在尝试向我的 laravel 项目中的现有表 (mysql) 添加一列,但我有几个问题

我运行命令 php artisan make:migration add_time_to_customers --table=customers 这显然会创建我的新迁移模板

public function up()
    {
        Schema::table('customers', function (Blueprint $table) {
            //
        });
    } 

但是我在这个实例上有几个数据库,所以我担心这个新迁移会应用于正确的数据库和表? 我查看了之前的专栏添加迁移,我看到了对它需要更改的实际数据库的引用?

public function up()
    {
        Schema::connection('customer_db')->table('customers', function (Blueprint $table) {
            $table->integer('lists');
        });
    }
  1. 我应该以不同的方式运行我的 make:migration 命令以确保它改变正确数据库中的正确表吗?

  2. 与此表有关的所有迁移也位于 ex 的子文件夹下。 migrations/customers 所以我想确保它也在子文件夹中创建迁移模板

  3. 当我运行 php artisan migrate - 这不会再次尝试运行现有迁移吗?我不想破坏我的生产系统或丢失任何信息

  4. 能否具体选择运行哪个迁移,是向上还是向下功能?

【问题讨论】:

  • php artisan migrate 将迁移该文件,该文件在您的 migration 表中不存在,您的数据库中有一个 migration 表。

标签: php laravel


【解决方案1】:

1- 我应该以不同的方式运行我的 make:migration 命令以确保它更改正确数据库中的正确表吗?

Ans: php artisan migrate --database=customer_db // 你需要 将其添加到您的 database.php 配置文件中

2- 与此表有关的所有迁移也位于 ex 的子文件夹下。 migrations/customers 所以我想确保它也在子文件夹中创建迁移模板

ANS:php artisan make:migration create_users_table --path=/app/database/migrations/customers

3- 当我运行 php artisan migrate - 这不会再次尝试运行现有迁移吗?我不想破坏我的生产系统或丢失任何信息

ANS: php artisan migrate 只运行未迁移的文件,你也可以 指定要迁移的文件或路径

4- 我可以具体选择运行哪个迁移以及是向上还是向下功能吗?

答:是的,php artisan migrate --path=/database/migrations/fileName.php 有时这不起作用,因此您可以将所需的迁移放在 子文件夹并使用子文件夹的路径运行它。关于下降和 up 函数 php artisan migrate 总是运行 up 函数。 php artisan migrate:rollback 总是运行 down 函数。

【讨论】:

  • 感谢您的详细解答。运行 php artisan migrate 时出现错误:SQLSTATE[HY000] [2002] 无法建立连接,因为目标机器主动拒绝了它。服务器是托管的,我正在尝试从我的本地机器(连接到 Bitbucket 存储库的 VS 代码)执行此操作。我应该在实例本身的终端上执行此操作吗?
  • 确保您的 php 服务器正在运行(如果它是 apache 或其他任何东西),并确保您的 msql 服务器已启动并正在运行
  • 但是这个实例没有在我的本地电脑上运行。它托管在 ISP 上。我不应该直接通过 SSH 进入实例然后运行 ​​php artisan migrate 吗?
  • 不管它在哪里运行,你都需要确保你的 Apache 服务器或 Web 服务器已经启动并运行。
  • 它尝试连接到 localhost: mysql:host=127.0.0.1;port=3306 这显然不会从我的机器路由到实际实例,因此询问我是否应该直接在实例
猜你喜欢
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 2011-08-23
  • 2010-11-27
  • 2018-04-16
  • 2013-07-10
  • 2020-12-23
  • 2020-09-20
相关资源
最近更新 更多