Skip to content
Mitsuru Mutaguchi edited this page Jun 15, 2023 · 11 revisions

NetCommons3 からの移行について

前提

  • NetCommons3.2.0以上

.env

# migration option (Common)  
MIGRATION_JOB_MONITOR=true  
MIGRATION_JOB_LOG=true  
MIGRATION_CONFIG_PATH=C:\connect-cms\_migration_config\migration_config_nc3.ini  
  
# migration option (NetCommons3)
NC3_DB_CONNECTION=mysql
NC3_DB_HOST=127.0.0.1
NC3_DB_PORT=3306
NC3_DB_DATABASE=xxxxxx
NC3_DB_USERNAME=xxxxxx
NC3_DB_PASSWORD=xxxxxx
NC3_DB_PREFIX=nc3_
NC3_EXPORT_UPLOADS_PATH=/path_to_nc3/app/Uploads/
NC3_APPLICATION_YML_PATH=/path_to_nc3/app/Config/application.yml

上記のように、.env に移行元のNC2 情報を設定する。

migration config のサンプル
app/Traits/Migration/sample/migration_config/migration_config_nc3.sample.ini
migration config は、移行コマンド(エクスポート・インポート)の設定ファイルです。
基本は設定変更しなくても動きます。

エクスポート

エクスポート書式

$ php artisan command:ExportNc3 対象 [redo(やり直し)]  

NC3 からエクスポートの実行

$ php -d memory_limit=512M -d allow_url_fopen=1 artisan command:ExportNc3 all {redo}  
$ php -d memory_limit=512M -d allow_url_fopen=1 artisan command:ExportNc3 uploads {redo}  
$ php -d memory_limit=512M -d allow_url_fopen=1 artisan command:ExportNc3 users {redo}  
$ php -d memory_limit=512M -d allow_url_fopen=1 artisan command:ExportNc3 plugins all {redo}  
$ php -d memory_limit=512M -d allow_url_fopen=1 artisan command:ExportNc3 plugins blogs {redo}  
$ php -d memory_limit=512M -d allow_url_fopen=1 artisan command:ExportNc3 plugins databases {redo}  
$ php -d memory_limit=512M -d allow_url_fopen=1 artisan command:ExportNc3 pages {redo}  

export した際に storage\app\migration\import 以下にデータが作成される。

インポート書式等

エクスポート以外はNC2移行と同様です。 Migration from NC2 ページを参照してください。

オプション

エクスポートファイルの上書き設定

エクスポート時に出力した移行ファイルを部分的に上書きします。framesのみ対応。
storage\app\migration\@nc3_override 下に追加する。
上書き設定も export した際に作成される storage\app\migration\import 以下と同じ構成でフォルダを作成し、変更内容を配置する。
サンプルは app/Traits/Migration/sample/migration の下にあります。

追加インポート設定

NC2移行と同様です。 Migration from NC2#追加インポート設定 を参照してください。

インポートファイルの上書き設定

NC2移行と同様です。 Migration from NC2#インポートファイルの上書き設定 を参照してください。

参考情報

前提のNetCommons3.2.0以上の補足情報
NetCommons3.2.0で追加されたDB項目「rooms.sort_key」「pages.sort_key」がないと、Connectの移行コマンド command:ExportNc3 でエラー(※)が出ます。
NetCommons3.2.0以上にアップデートしてください。

(※) command:ExportNc3 のエラー内容

C:\projects\connect-cms\htdocs\connect-cms>php -d memory_limit=512M artisan command:ExportNc3 all redo
frame_id,,category,message
,,Start exportNc3.,
,,Start nc3ExportBasic.,
,,Start nc3ExportUploads.,
,,Start nc3ExportUsers.,
,,Start nc3ExportRooms.,

   Illuminate\Database\QueryException 

  SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rooms.sort_key' in 'order clause' (SQL: select `rooms`.*, 
`rooms_languages`.`name` as `room_name` from `rooms` inner join `rooms_languages` on `rooms_languages`.`room_id` = `rooms`.`id` and `rooms_languages`.`language_id` = 2 where `space_id` in (4, 2) order by `rooms`.`sort_key` asc)

  at C:\projects\connect-cms\htdocs\connect-cms\vendor\laravel\framework\src\Illuminate\Database\Connection.php:712
    708// If an exception occurs when attempting to run a query, we'll format the error
    709// message to include the bindings with SQL, which will make this exception a
    710// lot more helpful to the developer instead of just the database's errors.
    711catch (Exception $e) {
  ➜ 712throw new QueryException(
    713$query, $this->prepareBindings($bindings), $e
    714▕             );
    715▕         }
    716▕     }

  1   C:\projects\connect-cms\htdocs\connect-cms\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDO\Exception.php:18
      Doctrine\DBAL\Driver\PDO\Exception::("SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rooms.sort_key' in 'order 
clause'")

  2   C:\projects\connect-cms\htdocs\connect-cms\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:87
      Doctrine\DBAL\Driver\PDO\Exception::new(Object(PDOException))


C:\projects\connect-cms\htdocs\connect-cms>php -d memory_limit=512M artisan command:ExportNc3 all redo
frame_id,,category,message
,,Start exportNc3.,
,,Start nc3ExportBasic.,
,,Start nc3ExportUploads.,
,,Start nc3ExportUsers.,
,,Start nc3ExportRooms.,
,,「すべての会員をデフォルトで参加させる」ルームはグループ作成しない,ルーム名=コミュニティ
,,Start nc3ExportBlog.,
,,Start nc3ExportBbs.,
,,Start nc3ExportMultidatabase.,
,,Start nc3ExportTopics.,
,,Start nc3ExportCabinet.,
,,Start nc3ExportRegistration.,
,,Start nc3ExportFaq.,
,,Start nc3ExportLinklist.,
,,Start nc3ExportCounter.,
,,Start nc3ExportCalendar.,
,,Start nc3ExportReservation.,
,,Start nc3ExportPhotoalbum.,
,,Start nc3ExportVideo.,
,,Start nc3ExportSearch.,

   Illuminate\Database\QueryException 

  SQLSTATE[42S22]: Column not found: 1054 Unknown column 'pages.sort_key' in 'order clause' (SQL: select `pages`.`id` from `pages` inner join `rooms` on `rooms`.`id` = `pages`.`room_id` and `rooms`.`space_id` = 2 where `pages`.`parent_id` is not null order by `pages`.`sort_key` asc limit 1)

  at C:\projects\connect-cms\htdocs\connect-cms\vendor\laravel\framework\src\Illuminate\Database\Connection.php:712
    708// If an exception occurs when attempting to run a query, we'll format the error
    709// message to include the bindings with SQL, which will make this exception a
    710// lot more helpful to the developer instead of just the database's errors.
    711catch (Exception $e) {
  ➜ 712throw new QueryException(
    713$query, $this->prepareBindings($bindings), $e
    714▕             );
    715▕         }
    716▕     }

  1   C:\projects\connect-cms\htdocs\connect-cms\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDO\Exception.php:18
      Doctrine\DBAL\Driver\PDO\Exception::("SQLSTATE[42S22]: Column not found: 1054 Unknown column 'pages.sort_key' in 'order 
clause'")

  2   C:\projects\connect-cms\htdocs\connect-cms\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php:87
      Doctrine\DBAL\Driver\PDO\Exception::new(Object(PDOException))

参考URL

Clone this wiki locally