我使用laravel migartion创建一些表,然后为使用我的表的视图创建迁移。 现在,我想更改此视图中使用的列的类型(为此创建一个新的迁移。)。但是,PostgreSQL不允许我更改列类型,因为视图中使用了column。我想知道什么是解决此问题的最佳方法。
我试图使用创建视图的迁移来删除它,然后在更改列类型后重新创建它,但是存在问题,因为迁移没有名称空间,我不知道这是解决此问题的好方法。
答案 0 :(得分:0)
首先,我的英语不好。我了解的是,您正在使用现有表创建新迁移?如果该表已经存在,则可以尝试使用此方法更改列名
Schema::table('users', function (Blueprint $table) {
$table->string('name', 50)->change();
});
答案 1 :(得分:0)
我用以下级别解决了我的问题:
在common-queries
中添加文件夹project/database/migrations/
在CommonQueries
文件夹位置的composer.json
中添加project/database/migrations/common-queries
命名空间。
将我的视图create
和drop
添加到class MyCurrentView
中(例如)。
在旧的迁移up
和down
函数中使用此类来创建和删除视图
在更改列类型之前在新的迁移和删除视图中使用此类,在更改列类型之后创建视图。