サポート

データベースをSQLite3からMySQLへ【解決】

木耳 (2017/04/30 15:56)

設置URL : http://don.soraaki.blue/

現在使っているレンタルサーバーが重たいので引っ越そうとしています。SQLite3で構築していたのですが、引越し先のレンタルサーバーから、できるだけMySQLでやってほしいと指示を受けました。
引越し先のfreoをセットアップし、freoからインポートしようとしたらエラーになり、どのページからもアクセスできなくなりました。
SQLite3でエクスポートしたデータベースをMySQLで設置したfreoに無事にインポートする方法をご存知の方はいらっしゃいますでしょうか。
よろしくお願いします。
URLは引越し先のものです。

ccc (2017/04/30 22:02)

URL : http://cccabinet.jpn.org/

これの逆バージョンということですね。
http://freo.jp/support/view/560

setupが完了しているのなら、phpMyAdminでデータベースをSQLにフォーマットしてエクスポートします。
エクスポートしたsqlファイルをエディタで開いて、SQLite3でエクスポートしたデータベースの

INSERT INTO freo_xxxs VALUES(...

の行を移植するのですが、SQLite3では
例えばエントリーの場合

DROP TABLE IF EXISTS freo_entries;
CREATE TABLE freo_entries(id INTEGER, user_id VARCHAR NOT NULL, created DATETIME NOT NULL, modified DATETIME NOT NULL, approved VARCHAR NOT NULL, restriction VARCHAR, password VARCHAR, status VARCHAR NOT NULL, display VARCHAR NOT NULL, comment VARCHAR NOT NULL, trackback VARCHAR NOT NULL, code VARCHAR UNIQUE, title VARCHAR NOT NULL, tag VARCHAR, datetime DATETIME NOT NULL, close DATETIME, file VARCHAR, image VARCHAR, memo VARCHAR, text LONGTEXT, PRIMARY KEY(id));

INSERT INTO freo_entries VALUES('1',~(略)~);
INSERT INTO freo_entries VALUES('2',~(略)~);
INSERT INTO freo_entries VALUES('3',~(略)~);

となるのに対して、
MySQLでは

CREATE TABLE IF NOT EXISTS `freo_entries` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` varchar(80) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `approved` varchar(20) NOT NULL,
  `restriction` varchar(20) DEFAULT NULL,
  `password` varchar(80) DEFAULT NULL,
  `status` varchar(20) NOT NULL,
  `display` varchar(20) NOT NULL,
  `comment` varchar(20) NOT NULL,
  `trackback` varchar(20) NOT NULL,
  `code` varchar(80) DEFAULT NULL,
  `title` varchar(255) NOT NULL,
  `tag` varchar(255) DEFAULT NULL,
  `datetime` datetime NOT NULL,
  `close` datetime DEFAULT NULL,
  `file` varchar(80) DEFAULT NULL,
  `image` varchar(80) DEFAULT NULL,
  `memo` varchar(255) DEFAULT NULL,
  `text` longtext,
  PRIMARY KEY (`id`),
  UNIQUE KEY `code` (`code`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

INSERT INTO `freo_entries` (`id`, `user_id`, `created`, `modified`, `approved`, `restriction`, `password`, `status`, `display`, `comment`, `trackback`, `code`, `title`, `tag`, `datetime`, `close`, `file`, `image`, `memo`, `text`) VALUES
(1,~(略)~),
(2,~(略)~),
(3,~(略)~),

とするようです。
しかも、先ほどのリンク先の逆で、記事部分の改行部分(<br />タグではなくEnterによる改行)は「\n」に、「''」となっているところは「'」に置換する必要があります。

木耳 (2017/05/01 19:43)

ありがとうございます、月並みな言葉で申し訳ないのですが、やってみます。
グーグルなどで検索したのですが、該当記事は把握しておりませんでした、失礼しました。
解決したらトピックタイトルをタイトルを変更します。
また問題があったら書き込ませていただきます。

返信

  • この記事に返信します。
  • 返信の際は、設置URL以外の項目は入力必須です。
投稿フォーム
名前
設置URL
本文(本文の装飾について
編集キー(投稿した記事を編集する際に使用します。)
投稿キー(スパム対策に、投稿キー を半角で入力してください。)