【问题标题】:laravel migration for change column type that used in a viewlaravel 迁移用于更改视图中使用的列类型
【发布时间】:2020-09-03 22:19:02
【问题描述】:

我使用 laravel migartion 创建一些表,然后为使用我的表的视图创建迁移。 现在,我想更改此视图中使用的列的类型(我为其创建一个新的迁移。)。但是,PostgreSQL 不允许我更改列类型,因为视图中使用了列。我想知道解决这个问题的最佳方法是什么。

我尝试使用创建视图的迁移来删除然后在更改列类型后重新创建它,但存在问题,因为迁移没有命名空间,我不知道这是解决此问题的好方法。

【问题讨论】:

    标签: laravel migration


    【解决方案1】:

    我用以下级别解决了我的问题:

    1. project/database/migrations/ 中添加文件夹common-queries

    2. composer.json 中添加CommonQueries 命名空间和project/database/migrations/common-queries 文件夹位置。

    3. class MyCurrentView 中添加我的观点createdrop(例如)。

    4. 在旧的迁移updown函数中使用这个类来创建和删除视图

    5. 在更改列类型之前在新迁移和删除视图中使用此类,并在更改列类型后创建视图。

    【讨论】:

      【解决方案2】:

      首先,我的英语不好。我的理解是,您正在使用已经存在的表创建一个新的迁移?如果表已经存在,那么您可以尝试使用此更改列名

      Schema::table('users', function (Blueprint $table) {
          $table->string('name', 50)->change();
      });
      

      Laravel Documentation

      【讨论】:

      • 不,这不是我的答案。我知道如何更改列类型我想要一个在更改类型之前解决列依赖错误的好方法。
      猜你喜欢
      • 2014-06-30
      • 2015-02-07
      • 2013-07-27
      • 2013-01-28
      • 2016-10-09
      • 2016-01-01
      • 2021-12-04
      • 2017-07-28
      相关资源
      最近更新 更多