Ouroboros is the database converter from Kawaz2 to Kawaz3.
- Python3.3++
$ pip install -r requirements.txt $ python converter.py
現段階ではMySQLの変換のみをサポート。SQLiteはちゃんと動くか未確認
`local_settings.py`のENGINEをMySQLに設定済みの物として扱う
$ cd kawaz3rd $ python manage.py syncdb $ python manage.py loaddata production $ python manage.py loaddata debug
2. `config.sample.ini`を`config.ini`にコピー
srcには2nd、dstには3rdを指定すべし
[driver] src = mysql+pymysql://username:password@localhost/src_dbname?charset=utf8 dst = mysql+pymysql://username:password@localhost/dst_dbname?charset=utf8
$ cd ouroboros $ python converter.py
[driver] src = sqlite:///db/kawaz.db dst = sqlite:///db/kawaz3.db
$ cd ouroboros $ python converter.py
2ndのテーブルから上手い具合に3rdのテーブルに写す。 カラムの追加削除や、初期値の設定もやってくれる
また、外部ファイルのパスの変換もやってくれます
- AnnouncementConverter
- AttachmentMaterialConverter
- BlogCategoryConverter
- BlogEntryConverter
- CommentConverter
- EventConverter
- EventAttendeeConverter
- PersonaConverter
- AccountConverter
- ProfileConverter
- ProfileSkillConverter
- ProjectConverter
- ProjectMemberConverter
- StarConverter
写した後のデータの値をいじる処理。以下のProcessorが順に適応される
2ndと3rdのContentTypeテーブルを参照して変換表を作り、ContentTypeを参照している物をコンバートする
- Star
- Comment
あたりに適応される
各本文中に含まれる素材埋め込みタグを新仕様に変換する
`{commons:1}`を`{attachments:123456789abcdef}`など
2ndでは全てのdatetimeがJSTで保存されているが、3rdではUTCなので、タイムゾーンを変換する。
具体的には保存時刻を9時間戻している。
2ndのCodeBlock記法をKFMのFencedCodeBlockにコンバートします
~~~ -> `
~~~.python -> `
.python