作为开发人员,我还是新手,我想更改用户表,如果我从上一个表中添加新列“ user_type”。
我的问题是:我可以这样做还是应该这样做? php artisan make:migration add_user_type_users 吗?
因此,如果无需使用add_user_type_users即可更改主表,那么在看到更改之前,应如何将其迁移到laravel forge中。因为,当我将更改提交到伪造时,它不会添加新列user_type。
新信息
如何将更改提交到实时数据库中?我正在使用Laravel Forge和DigitalOcean
答案 0 :(得分:1)
(编辑:回答原始问题)
如果需要将新闻列添加到现有表中,则必须:
php artisan make:migration <fileName>
Schema::table()
代替Schema::create()
php artisan migrate
示例:
//change create for table
//the first param (in this case 'users') must be the table name that you want to add columns
Schema::table('users', function (Blueprint $table) {
//news colums here
$table->string('new_col');
});
编辑: 回答已编辑的问题:
我可以这样做还是应该做php artisan make:migration add_user_type_users吗?
-
是的,您可以编辑旧的迁移文件,但是下一个php artisan migrate
不会更改已经迁移的文件,在这种情况下,您必须在此处删除表及其数据,并从中删除迁移表,用于运行编辑后的迁移文件。因此,这不是生产环境的答案。如果您这样做,则会遇到很多您会避免的问题。
也许您可以在开发人员上这样做。环境因为您可以随时删除和创建表,而不会丢失真实数据。
-
您必须创建新的迁移文件(就像原始答案一样),并且不会有丢失数据的问题(除非您希望这样做),并且迁移将在生产环境中进行,而无需删除任何内容。