如果要在生产表中添加新列,它如何工作?我知道在进行迁移时会丢失所有数据:新。
1)是否可以像我对fastnetnr列所做的那样更改迁移并添加新列?
public function up()
{
Schema::create('kontaktforms', function (Blueprint $table) {
$table->increments('id');
$table->string('navn');
$table->string('mobilnr');
//new fastnetnr column added
$table->string('fastnetnr')->nullable();
$table->string('mail');
$table->string('emne');
$table->text('beskrivelse');
$table->timestamps();
});
2)还是我必须用php artisan添加一个新列,以便输出是这样的?
public function up()
{
Schema::table('kontaktforms', function($table) {
$table->string('fastnetnr')->nullable();
});
}
答案 0 :(得分:1)
从逻辑上讲,您可以按照以下步骤操作;
php artisan migrate:rollback
或php artisan
migrate:rollback --step=1
php artisan migrate
但这不是最佳实践,尤其是在生产中。因此您必须创建新的迁移文件以修改表并进行迁移。
创建新的迁移文件
php artisan make:migration add_fastnetnr_to_kontaktforms_table --table=kontaktforms
并添加新列
public function up()
{
Schema::table('kontaktforms', function (Blueprint $table) {
$table->string('fastnetnr')->nullable();
});
}
public function down()
{
Schema::table('kontaktforms', function (Blueprint $table) {
$table->dropColumn('fastnetnr');
});
}
并迁移
php artisan migrate