【问题标题】:Laravel, copy tables from one database to otherLaravel,将表从一个数据库复制到另一个
【发布时间】:2018-08-30 11:45:51
【问题描述】:

我正在开发一个 SaaS 项目。对于不同的客户请求更多或更少的字段等,我相信它会有所帮助,而不是仅仅在已经创建的表上继续增长,将确实可以增长到每个客户的单独数据库中的表。为此,它将涉及将表重新创建到已设置的 X 连接,并创建一堆表,从而使迁移变得巨大。

我的问题是,是否有一种方法可以将表 example_table 从数据库 A 复制到数据库 B,使用正常迁移来保持数据,或者我是否最好使用一些 DBMS 来制作模板。

【问题讨论】:

    标签: laravel laravel-migrations


    【解决方案1】:

    您可以使用原始查询来做到这一点

    <?php
    
    use Illuminate\Database\Migrations\Migration;
    use Illuminate\Database\Schema\Blueprint;
    use DB;
    
    class MyNewTable extends Migration {
    
       /**
        * Run the migrations.
        *
        * @return void
        */
       public function up()
       {
           DB::statement('CREATE TABLE conection2.newtable LIKE system.oldtable; ');
       }
    
    
       /**
        * Reverse the migrations.
        *
        * @return void
        */
       public function down()
       {
           Schema::connection('conection2')->drop('newtable');
       }
    }
    

    【讨论】:

    • 嗯,这似乎是最好的路径,因为它保留了索引。另外,请检查我的编辑,因为有多个 db s
    • 是的,抱歉忘记添加那部分。批准编辑谢谢!
    • 它不会按照原始问题复制数据
    • @dgpro 要复制数据,您还需要执行以下操作:INSERT INTO newtable SELECT * FROM oldtable GROUP BY ID;
    猜你喜欢
    • 2012-01-07
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多