テーマ「m-single」でsqllite利用時のbasercms4系への移行について


#1

テーマ「m-single」はbaserCMS4.1.3で使用することが可能でしょうか。
のトピックではサーバのキャッシュ削除で移行できた。とありました。
当方ではbaserCMS3.0.2から4.1.3へバージョンアップを実施する際
に取得したバックアップデータを、DBマイグレーターを利用して、
3系用から4系用に変換する時点で内部エラーとなってしまいます。
SQLliteで構築しています。
念のために新規でbaserCMS3.0.2と4.1.3をインストールしています。
PHPは5.6.36です。
大変お手数ですが、解決方法の情報をお持ちの方がいらっしゃれば、情報提供お願い致します。


#2

こんにちは!

こちらの記事をまだご覧になっていない場合、参考にしてみてください:
baserCMS3系から4系への移行方法|basersマガジン - baserCMSクリエーターの為の情報サイト -

また、プラグインの注意事項に

baserCMS 3.0.9 以上のバックアップデータの basrCMS 4系 への変換のみサポートしています。

とありますので、まずは3系を3.0.2から3.0.9以上までアップデートしてバックアップを取得してみてください。
こちらのページで追加作業が必要と書いてあるものについては追加作業を行い、1バージョンずつ上げていくのが確実かと思います。


#3

アドバイスありがとうございます。
まずこちらで試したことを書きますので手順等に間違いがあればご指摘ください。
環境はPHP5.6.33,sqllite利用です。記事を参考にしてbaser3系は3.0.9と3.0.16をbaser4系は4.1.7にしています。
1,basercms-3.0.9を新規インストール
2. テーマを[M-single]にする。テーマの初期データを読み込み。
3.データをutf-8でバックアップ。
4.m-singleフォルダをバックアップ。
5.basercms-4.1.7を新規インストール
6.DBマイグレーター4.0.4インストール/BcDbMigrator4Component.php line 331 を以下に修正
“self_publish_end” => ($page[‘publish_end’] === ‘0000-00-00 00:00:00’)? NULL : $page[‘publish_end’],
この状態でDBマイグレーターを実行すると内部エラーとなり、baserCMS4.1.7が正常に表示されなくなります。
1のbasercms-3.0.9をbasercms-3.0.16にして新規インストールした場合も同様の症状になります。
ちなみにbasercms-3.0.16にはテーマ[M-single]がないのでbasercms-3.0.9をインストールした時のm-singleフォルダをテーマフォルダにコピーしてセットアップしています。


#4

「システム設定」の「オプション」の「制作・開発モード」をデバッグモードにするか、/app/tmp/logs フォルダーのログファイルでエラー詳細を確認してみてください。

エラーを読んでも解決策が分からない場合、出ているエラーをこちらに貼っていただければと思います。


#5

アドバイスありがとうございます。
連休中にサイトを止めてテストしています。
ここに貼り付けたデータ等のドメイン名は公開用のものに置き換えてあります。
環境はPHP5.6.33,sqllite利用です。baser3系は3.0.16をbaser4系は4.1.7にしています。

デバッグモード1で画面に出たエラーは下記の通りです。
debug.logとerror.logも貼り付けておきます。
ーーー
Table site_configs for model SiteConfig was not found in datasource default.

エラー: 内部エラーが発生しました。
Stack Trace
CORE/Cake/Model/Model.php line 3673 → Model->setSource(string)
CORE/Baser/Model/BcAppModel.php line 1523 → Model->getDataSource()
CORE/Baser/Model/BcAppModel.php line 1017 → BcAppModel->find(string, array)
CORE/Baser/basics.php line 720 → BcAppModel->findExpanded()
CORE/Baser/Config/bootstrap.php line 271 → loadSiteConfig()
APP/Config/bootstrap.php line 128 → require(string)
CORE/Cake/Core/Configure.php line 98 → include(string)
CORE/Cake/bootstrap.php line 439 → Configure::bootstrap(boolean)
ROOT/index.php line 148 → include(string)

ーーー
debug.log
ーー
2019-05-03 16:13:15 Notice: Notice (8): Undefined offset: 0 in [/var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/lib/Baser/Controller/PermissionsController.php, line 69]
Trace:
ErrorHandler::handleError() - CORE/Cake/Error/ErrorHandler.php, line 230
PermissionsController::beforeFilter() - CORE/Baser/Controller/PermissionsController.php, line 69
call_user_func - [internal], line ??
CakeEventManager::dispatch() - CORE/Baser/Event/CakeEventManager.php, line 243
Controller::startupProcess() - CORE/Cake/Controller/Controller.php, line 677
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 189
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 167
[main] - ROOT/index.php, line 164

ーーー
error.log
ーー
2019-05-03 16:44:24 Error: [MissingTableException] Table site_configs for model SiteConfig was not found in datasource default.
Exception Attributes: array (
‘table’ => ‘site_configs’,
‘class’ => ‘SiteConfig’,
‘ds’ => ‘default’,
)
Stack Trace:
#0 /var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/lib/Cake/Model/Model.php(3673): Model->setSource(‘site_configs’)
#1 /var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/lib/Baser/Model/BcAppModel.php(1523): Model->getDataSource()
#2 /var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/lib/Baser/Model/BcAppModel.php(1017): BcAppModel->find(‘all’, Array)
#3 /var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/lib/Baser/basics.php(720): BcAppModel->findExpanded()
#4 /var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/lib/Baser/Config/bootstrap.php(271): loadSiteConfig()
#5 /var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/app/Config/bootstrap.php(128): require(’/var/www/vhosts…’)
#6 /var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/lib/Cake/Core/Configure.php(98): include(’/var/www/vhosts…’)
#7 /var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/lib/Cake/bootstrap.php(439): Configure::bootstrap(true)
#8 /var/www/vhosts/cswokayama.php.xdomain.jp/httpdocs/tst417/index.php(148): include(’/var/www/vhosts…’)
#9 {main}


#6

ログの貼付けありがとうございます。

今のところDBマイグレーターはSQLiteでは動作しないようですね。
過去にも同じ問題に遭遇した方がいたようです。
http://forum-archive.basercms.net/modules/newbb/viewtopic.php?topic_id=2808&forum=5

SQLiteへの対応を要望するか、もしくはこの機会にMySQLへの移行なども検討してみてもいいかもしれません。