如何在laravel迁移文件中截短前备份db表?

deikduxw  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(360)

这个问题与此相似。
尽管这个问题似乎没有解决,但评论部分指出:
真正的可恢复迁移将在截断之前在up()上创建表visitors的备份副本,然后将备份复制到原来的on down()上。
找不到执行上述步骤的任何工作解决方案。
如何在截断前获取db表的转储?找到了一些演示如何从 .sql 文件,但如果不首先导出数据,这在这里是没有帮助的。
代码如下所示:

  1. class TruncateApiKeysTable extends Migration
  2. {
  3. /**
  4. * Run the migrations.
  5. *
  6. * @return void
  7. */
  8. public function up()
  9. {
  10. // take backup of current api_keys
  11. // run the truncate
  12. if (Schema::hasTable('api_keys')) {
  13. Schema::table('api_keys', function(Blueprint $table) {
  14. $table->truncate();
  15. });
  16. }
  17. }
  18. /**
  19. * Reverse the migrations.
  20. *
  21. * @return void
  22. */
  23. public function down()
  24. {
  25. // import data from the sql dump file
  26. // insert data into api_keys to revert changes
  27. }
fgw7neuy

fgw7neuy1#

解决方案1:在截断之前将现有记录保存为种子。使用 db to seeder 工具,如https://github.com/orangehill/iseed,你可以打电话 php artisan iseed my_table 在cli或 Artisan::call('iseed my_table'); 在php中。
解决方案2:创建一个备份mysql db,然后在截断之前将表保存在那里。意味着您将有一个mysql连接:
电流\u db
备份数据库
使用laravel可以轻松处理多个db。

相关问题