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));
    }

この処理で、

データが削除されて、

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

スキルを使って、就職/転職/副業する時のサイト

プログラミングのスキルなどを、自分なりに高めた上で、

自分のスキルをアピールして就職や転職を行い、年収をあげるか、

副業という形で、年収にプラスアルファの稼ぎを増やすことはできます。

まずはできる範囲で取り組むことで、

少しずつ、経験値も増え、自分のスキルが収入につながるのでおすすめです。

おすすめ書籍

広告

おすすめ記事