Laravelで別のデータベースから同じテーブルカラムのテーブルにデータを移行した件

Laravelを使っていて、

マスター、スレーブみたいに、

別のデータベースに対して、

バックアップデータや、

一度、別データベースに最新情報を作成して、

本来のデータベースにデータを移すなど、

データを移行しようとした時のメモ。

前提:やろうとしたこと

やろうとしたことは、

別データベースから、

同じカラムを持ったテーブルに対して、

データを移行しようとした。

イメージとしては、

テーブル単位で移行するイメージ

このような感じで、

移行元のデータベースから、

移行先のデータベースに対して、

データを移行させようとしました。

Laravelでの対応内容

Laravelでの対応内容としては、

それぞれのデータベースの定義を準備して、

それのデータに対して、

テーブル内容の削除と、

データを再度、移行元から追加するというシンプルな動作。

Laravelでテーブル単位で移行の方法

dumpとって、

一括で入れてしまうなどの方法も別であるとは思うが、

Laravelの中で、

  • 移行先のテーブルの中身を削除
  • 移行元のテーブルの中身を取得
  • 移行先に移行元のテーブルの中身を追加

という感じで処理を行った。

実際の処理はこんな感じ。

    $tblDataNew = DB::connection('new_database')
      ->table('new_table')
      ->get();
    DB::connection('old_database')->table('old_table')->truncate();
    foreach($tblDataNew as $rowData) {
      DB::connection('old_database')
        ->table('old_table')
        ->insert(get_object_vars($rowData));
    }

この処理で、

データが削除されて、

移行元からうまくデータが追加できた。

就職/転職に向けてスキルを高めるために

プログラミングのスキルを高めるために、

以下のサイトを参考にしてみてください。

おすすめ書籍

コメント一覧

コメントはまだありません。

コメント送信

コメントを残す

広告

おすすめ記事