件名: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/20/19 05:52 PM JST
投稿者: kuro

いつもお世話になります。

先日からGeeklog2.1.3から2.2.1へのアップグレードの為のテストを行ってます。
記事などは、ちゃんと表示されますが、
静的ページが「移行」「アップグレード」などいろいろ試しても、
データが消えてしまいます。

2.1.3の静的ページはバージョンが、1.6.9なのですが、
2.2.1は1.7.1なので、管理画面で一度プラグインを削除して、
再度インストールしなおしてるんですが、

そうすると、データベースにあったこれまでの静的ページのデータが
無くなってしまってるようなのですが、、、

何か必要な設定を見落としてるのでしょうか?

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/20/19 05:57 PM JST
投稿者: Ivy

おかしいですね・・・
gl_topic_assignments を確認していただけますでしょうか。

特に、Geeklog1系統からのアップグレードで管理画面で静的ページの一覧は表示されているのに、ページが表示されないケースがありますが、それはgl_topic_assignmentsにただしく移行できていないためです。

プラグインを削除して、データベースだけで復旧させようとすると、gl_topic_assignmentsを見落として失敗することはありがちだと思います。

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/21/19 11:40 AM JST
投稿者: kuro

Ivyさん、ありがとうございます。

gl_topic_assignments は特に問題ないような感じです。
レコード数もアップグレードする前と同じですし。

gl_staticpageの構造がアップグレード後は、
sp_prev、sp_next、sp_parent が追加されています。
この構造の違いが原因とかではないでしょうか??

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/21/19 01:45 PM JST
投稿者: Ivy

静的ページをアップグレードするとsp_prev、sp_next、sp_parentが自動的に追加されているはずです。
もちろん、これらが無ければエラーになります。
プラグイン管理画面でアップグレードをお願いします。

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/21/19 05:22 PM JST
投稿者: kuro

Ivyさん、ありがとうございます。

静的ページをアップグレードするとsp_prev、sp_next、sp_parentが自動的に追加されているはず

たしかに、静的ページをアップグレードすると自動的に追加されますが、
いままでのデータは無くなってしまいます。(~ ~;

基本的なインストール方法が間違ってるのでしょうか?

DBはそのままで、
Geeklogの「アップグレード」でインストールしたのですが、

一度DBをバックアップした上で、全てのテーブルを削除した上で、
Geeklogの「移行」でインストールした方がいいのか?

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/23/19 03:41 PM JST
投稿者: terayama

無効ではなく削除してしまうとDBテーブルも削除されるので
データが無くなります

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/23/19 11:20 PM JST
投稿者: Ivy

1.データベースはバックアップ
2.旧ソースはディレクトリをリネームして退避
3.Geeklog 2.2のソースをアップロード
4.アップグレード

この手順で良いはずです。
静的ページが消えるというのは、データベースからも勝手に消えているのか、
それともサイトに表示されないだけで、データベースには残っているのか・・・


書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/24/19 11:05 AM JST
投稿者: kuro

terayamaさん、Ivyさん、ありがとうございます。

無効ではなく削除してしまうとDBテーブルも削除されるので
データが無くなります


「移行」手続きの場合は、一旦削除でDBをまっさらにしたあとで、
インストール画面で要求される通り、事前にバックアップしたDBデータをアップロードします。

「移行」にしろ「アップグレード」にしろ、
Geeklogインストールの段階では静的ページのDBデータが自動的に消えることはないのですが、
静的ページを1.6.9から1.7.1にアップグレードしようとすると、
静的ページのDBデータが消えてしまうんです。(~ ~;;


静的ページが消えるというのは、データベースからも勝手に消えているのか、
それともサイトに表示されないだけで、データベースには残っているのか・・・


静的ページが消えるのは、データベースから勝手に消えてます。

以前、Geeklog1.7からGeeklog2.1.3にアップグレードした際には、Ivyさんのおっしゃる様に
データベースにデータは残っていましたが、サイトに表示されないだけだったんですが、、、

どうして???



書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/24/19 03:24 PM JST
投稿者: Ivy

> 「移行」手続きの場合は、一旦削除でDBをまっさらにしたあとで、
> インストール画面で要求される通り、事前にバックアップしたDBデータをアップロードします。

インストール画面でどのように要求しているでしょうか。
データベースを削除するような指示は出していないはずなのです。
移行する際に、

1.手元のDBをアップロードする
2.バックアップディレクトリのDBを選択する
3.データベースにすでに存在しているものを選択する

DBのアップロードで失敗することのないように(ファイル容量でアップロード失敗のケースもあり)、
わたしはいつもあらかじめデータベースにアップロードして準備したうえで移行しています。

どうしてもだめなら、初期化して、テーブルをインポートしてください。そのとき、新構造になるようにインポートしてください。
また、gl_topic_asignmentもセットしてください。

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/24/19 03:51 PM JST
投稿者: kuro

Ivyさん、いつもありがとうございます。

インストール画面でどのように要求しているでしょうか。
データベースを削除するような指示は出していないはずなのです。


説明が下手で申し訳ないです。
本来、「アップグレード」すればいいのかもしれないですが、
それだと上手く行かなかったので、
「移行」でインストールしてみました。
その際、もともとのDBのデータがあると、
「(再起動する前に古いテーブルを削除してください)」と言われます。

それで、いったんDBを削除した上で「移行」しています。

初期化して、テーブルをインポートしてください。そのとき、新構造になるようにインポートしてください。
また、gl_topic_asignmentもセットしてください。

上のやり方をもう少し詳しく教えていただけませんか?

初期化して、テーブルをインポート・・・とは、
DBのテーブルを削除して、バックアップしたデータをphpMyAdminでインポートしてあげる。
ということでいいでしょうか?

また、
新構造になるようにインポート・・・とは、
これはどう対応するのでしょうか?



書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/25/19 12:22 AM JST
投稿者: Ivy

では、通常のアップグレードについて。

> その際、もともとのDBのデータがあると、
>「(再起動する前に古いテーブルを削除してください)」と言われます。

バックアップファイルを選択 で、「現在のデータベースのデータを使用する」
を選択すれば良いです。もし、これを、アップロードするなどを選べば、
現在のデータベースがあればうまくいきませんから、先に消して下さい、と誘導されてしまいます。

慎重にアップグレードするなら「現在のデータベースのデータを使用する」でお願いします。


書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/25/19 12:35 AM JST
投稿者: Ivy

静的ページのアップグレードがどうしてもできない場合は、
つまり、アップグレードしたらすっかり静的ページのデータがなぜか消えてしまった、というようなケース。
この症状ははじめて聞きますので、なぜそうなったのか、もしよろしければサイトを確認させていただきたいので
お問い合わせフォームでサイトの情報を教えていただければと思いますが、
ともかく、まったく静的ページのデータが消えた状況から復旧することはできます。

0.あらかじめ、旧サイトのDBのgl_staticpagesのみを エクスポート。
   モードは、「詳細」 「データのみ」 「both of the above」
    Example: INSERT INTO tbl_name (col_A,col_B,col_C) VALUES (1,2,3), (4,5,6), (7,8,9) 
1.プラグイン管理画面で静的ページをアンインストール(中途半端に静的ページが残っていると問題なので先にアンインストール)
2.静的ページをインストール
3.0.の旧サイトのSQLをphpMyAdminでインポート
4.gl_topic_assignmentsに静的ページ分を追加
以下のようなSQLを静的ページのidに対応して作成してインポートします。
PHP Formatted Code
INSERT INTO `gl_topic_assignments` (`tid`, `type`, `id`, `inherit`, `tdefault`) VALUES
('all', 'staticpages', '_header_navigation_en', 0, 0),
('all', 'staticpages', '_footer_contents_en', 0, 0),
('all', 'staticpages', '_topics_ja', 0, 0),
('homeonly', 'staticpages', '_top', 0, 0);
 


4.がちょっと面倒ですが、CALCを活用して作ってみてください。

phpMyAdminは、Open Document Spread Sheet のモードで書き出して、CALCで編集すると便利です。

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/25/19 09:40 PM JST
投稿者: kuro

Ivyさん、いつもありがとうございます。

いろいろと考えてくださり、ありがとうございます。
まずは、、、
「現在のデータベースのデータを使用する」

で、アップグレードにトライしてみます。


RE: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/30/19 01:43 PM JST
投稿者: Ivy

4.gl_topic_assignmentsに静的ページ分を追加

この作業もしていただいているでしょうか。
ひとつひとつ保存すると、都度gl_topic_assignmentsにも登録されるので表示されるようになります。

RE: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/29/19 09:32 PM JST
投稿者: kuro

いつもお世話になります。

Ivyさん、ありがとうございました。
結局は、「現在のデータベースのデータを使用する」による「移行」では、
上手くいきませんでした。

後に教えてくださいました、
「静的ページのアップグレードがどうしてもできない場合」
による対応によって、静的ページをアップグレードした上で、
データベースのデータも削除されずできましたが、

Geeklog1.7から2.1にアップグレードした時のように、
静的ページのデータは残ってても、表示はできない状態でして、
静的ページを1ページずつ保存し直さないといけないみたいです。
これはやっぱり仕方ないのでしょうか?

RE: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/30/19 01:53 PM JST
投稿者: kuro

Ivyさん、ありがとうございます。

4.なんですが、
CALCを活用して、というのが良くわからなかったので、

phpMyAdminにて、
以下のSQL文を実行しました。
PHP Formatted Code

INSERT INTO `gl_topic_assignments` (`tid`, `type`, `id`, `inherit`, `tdefault`) VALUES
('all', 'staticpages', '_header_navigation_en', 0, 0),
('all', 'staticpages', '_footer_contents_en', 0, 0),
('all', 'staticpages', '_topics_ja', 0, 0),
('homeonly', 'staticpages', '_top', 0, 0);
 

RE: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/30/19 01:56 PM JST
投稿者: Ivy

はい、それで良いです。 静的ページが大量にある場合には、CALCを利用して、ODC形式のままインポートする方法があります。 CALCのインポートの場合は、あらかじめデータを空にしてからインポートです。

RE: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 01/30/19 02:03 PM JST
投稿者: kuro

ありがとうございます。

静的ページが大量にある場合には、CALCを利用して、ODC形式のままインポートする方法があります。
CALCのインポートの場合は、あらかじめデータを空にしてからインポートです。


静的ページが400ページ程度あるので、
一つ一つ保存しなおすのはちょっと面倒なので、
CALCで試してみたいですが、
CALCってエクセルでもいいんですよね?
どの項目をどうすればいいのでしょうか?

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 02/10/19 01:26 PM JST
投稿者: Ivy

CALCというのは、Libre のCALCです。CALCは、ODC形式です。
Libreは、オープンソースで、EXCELより、慣れるととても使いやすく、
わたしはEXCELよりCALCばかり使っています。
UTF8のCSVもそのまま開けますし、EXCEL形式にも書き出せますよ。
その際タイトルを書きだすモードにしてください。

phpMyAdminで、ODC形式で書き出して、LibreのCALCで開いて、CALCの形式のまま、
データを空にしたうえで読み込みます。


書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 02/10/19 01:34 PM JST
投稿者: Ivy

静的ページは、アップグレードで失敗しても、プラグインをアンインストールして、新規インストールしたうえで、
DBを新テーブルにインポートすることでかならず復活します。

旧DBから、静的ページの「データ」だけを、
「すべての INSERT 文にカラム名を含める 」
のモードで書き出します。

これを、新規インストールのDBにインポートすれば復活します。

あとは、gl_topicassignment へのインポートですが、
旧DBから、ODC形式でgl_topicassignmentとgl_staticpageをエクスポートして、CALCで開いて編集します。

gl_topicassignmentに、静的ページのデータを追加したうえで、新DBにインポートすればOKです。


書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 02/11/19 01:52 PM JST
投稿者: kuro

Ivyさん、いつもお世話になります。
このサイトの新しいテーマいいですね!

ありがとうございます。
CALC、試してみます!

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 02/11/19 03:09 PM JST
投稿者: Ivy

ありがとうございます! ivywe版は、テーマを大幅に改善しましたので、ぜひご活用いただきたいのですが、注意があります。 ivywe版は、本家リポジトリを可能な限り取り込んで開発を進めている関係で、2.2.1になってからダウンロードして、さらに現在のリポジトリを活用するには、データベース構造がかわっているので、phpMyAdminにて以下のSQLを実行してください。
PHP Formatted Code
ALTER TABLE gl_staticpage ADD `structured_data_type` tinyint(4) NOT NULL DEFAULT 0 AFTER `commentcode`
ALTER TABLE gl_stories ADD `structured_data_type` tinyint(4) NOT NULL DEFAULT 0 AFTER `commentcode`
ALTER TABLE gl_stories ADD `modified` DATETIME NULL DEFAULT NULL AFTER `date`
 

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 02/28/19 03:37 PM JST
投稿者: kuro

いつもお世話になっております。

CALCで編集したODS形式のファイルは、
phpMyAdminにてインポートする際の設定はどうすればいいでしょうか?

インポートするファイルの形式では、
1.CSV
2.LOAD DATA する CSV
 オプション:SQL互換モード「NONE、ほか、、、」
3.SQL

なんです。
phpMyAdminが古いVerのようです。 Frown

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 02/28/19 06:10 PM JST
投稿者: Ivy

phpMyAdminは、CMS同様に、インストールできるので、手動でインストールすると良いですよ。
Libre calcの形式がだめでもCSVで書き出してエクセルやLibre calcで編集してまたCSVにしてインポートなどできます。

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 03/01/19 11:47 AM JST
投稿者: kuro

Ivyさん、ありがとうございます。

静的ページを保存し直さないと表示されないのですが、
Libreでどこをどう変更するのかがまだわかってなくて。 Confused

教えていただけますか。

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 03/01/19 11:58 AM JST
投稿者: Ivy

静的ページを保存し直さないと表示されない のは、gl_topic_assignments に、個々の静的ページの話題関連性が登録されていないためです。
gl_topic_assignmentsも編集してください。

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 03/01/19 05:09 PM JST
投稿者: kuro

Ivyさん、ありがとうございます。

gl_topic_assignmentsをCSVで書き出し、
staticpage(静的ページ)の「inherit」「tdefault」を
それぞれ、「1」「1」に編集し、インポート。
以上で有効にできるようになりました。

ありがとうございました。

書込: Geeklog2.1.3から2.2.1にアップグレードすると静的ページのデータが消える

投稿日: 03/03/19 01:36 AM JST
投稿者: Ivy

無事アップグレード、おめでとうございます^^

2.1から、記事、静的ページ、ブロックが、複数の話題にアサインできるようになったので、
今までのように、話題idを記事のテーブルにひとつだけ保存するわけにはいかなくなって新にこのテーブルができました。
静的ページが、2へのアップグレードでエラーを起こしがちなのはこのせいです。

Geeklog Japan - 掲示板
https://www.geeklog.jp/forum/viewtopic.php?showtopic=19383