编程语言
首页 > 编程语言> > php – 使用Laravel 4从旧表迁移到新表的数据

php – 使用Laravel 4从旧表迁移到新表的数据

作者:互联网

是否可以将旧表中的数据复制到新表而不是重命名?我们正在计划一个主要的数据库模式升级,并希望保留当前的数据表,因此迁移down()可以像删除新创建的表一样简单.

我们意识到这会破坏向后兼容性,因为迁移:rollback并没有真正将任何新数据回滚到以前的状态;但是由于模式更新的规模,启用这样的东西将非常昂贵,我们满足于简单的单向迁移,只要它保留旧表.

这可以在Laravel的迁移和模式中完成吗?

解决方法:

感谢@TonyArra和@Fractaliste的建议,我们现在做了类似下面的事情,这允许我们测试运行迁移和回滚,而不必担心数据丢失.

use Illuminate\Database\Migrations\Migration;

use MyNewModel;

class DataConvert extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        foreach(MyOldModel::all() as $item)
        {
            MyNewModel::create(array(...));
        }

    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        MyNewModel::truncate();
    }

}

标签:php,migration,laravel,laravel-4,database-migration
来源: https://codeday.me/bug/20190718/1491790.html