因此,应用程序在生产和本地运行时运行良好。然后,在本地,我对数据库进行了一些更改,例如添加列和更改列的属性。当我去本地迁移时,我收到了一个错误,因此我最终删除了该迁移文件,回滚了整个表格,并根据需要创建了一个全新的迁移设置。在本地迁移并且它正在工作。
现在,我将这些更改推送到github,然后他们自动拉到Laravel Forge并转到生产服务器。我收到一条错误说#34;表已经存在"。因此,github存储库对已经在我的生产服务器上运行的那个表进行了新的迁移。
我试图弄清楚如何解决此问题,而不会破坏当前生产数据库表中的记录,并确保在我需要删除表的情况下进行迁移。
谢谢!
答案 0 :(得分:3)
如果要在生产数据库中添加新列或更改任何内容。
您需要创建一个新的迁移,将这些行添加到数据库中。这并不像改变现有的迁移那么容易。
您在生产中获得“表已存在”的原因是因为迁移已经运行。
例如,如果您已经迁移了用户的表,并且您决定要在现有表中添加昵称。
您将创建新的迁移php artisan make:migration alter_users_table_add_nickname
然后在使用Schema::create
进行的迁移中,它会使用Schema::table
public function up()
{
Schema::table('users', function(Blueprint $table)
{
$table->string('nickname');
});
}
public function down()
{
Schema::table('users', function(Blueprint $table){
$table->dropColumn('nickname');
});
}
您可以在Creating Columns
上阅读更多内容