Instiki
Migrating to MySQL (Rev #25, changes)

Skip the Navigation Links | Home Page | All Pages | Recently Revised | Authors | Feeds | Export |

Showing changes from revision #24 to #25: (追記) Added (追記ここまで) | (削除) Removed (削除ここまで) | (削除) Chan (削除ここまで)(追記) ged (追記ここまで)

Table of Contents (Skip the Table of contents)

Instiki

So you’ve been running Instiki, for a while, with the default SQLite database engine. Now you’ve decided to migrate to a beefier alternative, like MySQL. Here’s how to migrate your data (based on an article by Al Hoang).

  1. Make sure you’re running Instiki 0.19 or later, and have run

     % ruby bundle exec rake upgrade_instiki

    This upgrades the database schema to the latest version. The previous schema (used in earlier versions of Instiki) could cause (data loss!) problems for some users, when migrating from SQLite3 to MySQL.

  2. Add the line

    gem "mysql"

    to the end of the Gemfile and re-run

    % ruby bundle

    which will install the mysql gem for you.

  3. Set an environment variable in your shell.

    • Under sh and its cousins (bash, zsh, etc) type

      % RAILS_ENV=‘production’

    • Under csh and its cousins (tcsh, etc) type

      % setenv RAILS_ENV production

  4. Export your database to dump/fixtures/*.yml

     % ruby bundle exec rake db:fixtures:export_all
  5. Edit config/database.yml, replacing

     production:
    adapter: sqlite3
    database: db/production.db.sqlite3

    with something along the lines of

    production:
    adapter: mysql
    database: your_db_name
    username: your_db_username
    password: your_db_password
    host: 127.0.0.1
    port: 3306

    (The precise details will depend on your setup.)

  6. Create a database in MySQL, with the same name as the one you gave in database.yml, using something like

    % echo "create database your_db_name" | mysql -u your_db_username -p your_db_password
  7. Initialize the database tables and reimport your data

     % ruby bundle exec rake db:migrate
     % ruby bundle exec rake db:fixtures:import_all

Case Sensitivity

There’s one more issue that you may want to consider. Under SQLite3, string comparisons are (by default) case-sensitive. Thus, you can have a page named ‘Foo’ and a page named ‘foo’, and they will be treated as distinct by Instiki. Under MySQL, the opposite is true. String comparisons are, by default, case-insensitive.

Neither behaviour is "more correct"; they’re just different. If you want to retain the case-sensitivity of page names, when you migrate to MySQL, you can change the collation on the relevant database columns. The relevant SQL commands are

ALTER TABLE `pages` MODIFY `name` varchar(255) COLLATE latin1_bin DEFAULT NULL;
ALTER TABLE `wiki_references` MODIFY `referenced_name` varchar(255) COLLATE latin1_bin NOT NULL DEFAULT '';
ALTER TABLE `wiki_files` MODIFY `file_name` varchar(255) COLLATE latin1_bin NOT NULL;

or

ALTER TABLE `pages` MODIFY `name` varchar(255) COLLATE utf8_bin DEFAULT NULL;
ALTER TABLE `wiki_references` MODIFY `referenced_name` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '';
ALTER TABLE `wiki_files` MODIFY `file_name` varchar(255) COLLATE utf8_bin NOT NULL;
(削除)

WBC wonogiri

(削除ここまで)
(削除) (削除ここまで)(削除)

Pulsa Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Jasa Jual Beli

(削除ここまで)
(削除) (削除ここまで)(削除)

SEO Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Jagoan SEO Master

(削除ここまで)
(削除) (削除ここまで)(削除)

Blogger Wonogiri

(削除ここまで)
(削除) (削除ここまで)(削除)

Trend Terbaru

(削除ここまで)
(削除) (削除ここまで)(削除)

Ganzzt

(削除ここまで)
(削除) (削除ここまで)(削除)

SEOjek

(削除ここまで)
(削除) (削除ここまで)(削除)

Wahyudie

(削除ここまで)
(削除) (削除ここまで)(削除)

Laptop Store

(削除ここまで)
(削除) (削除ここまで)(削除)

Buy Laptop Online

(削除ここまで)
(削除) (削除ここまで)(削除)

Android Store

(削除ここまで)
(削除) (削除ここまで)(削除)

Upin

(削除ここまで)
(削除) (削除ここまで)(削除)

Upin

(削除ここまで)
(削除) (削除ここまで)(削除)

Upinson

(削除ここまで)
(削除) (削除ここまで)(削除)

Upin

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Safety

(削除ここまで)
(削除) (削除ここまで)(削除)

Symbian Kreatif

(削除ここまで)
(削除) (削除ここまで)(削除)

Edo Ziedo

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Symbian Kreatif

(削除ここまで)
(削除) (削除ここまで)(削除)

Symbian Kreatif

(削除ここまで)
(削除) (削除ここまで)(削除)

Symbian Kreatif

(削除ここまで)
(削除) (削除ここまで)(削除)

Bisnis Online

(削除ここまで)
(削除) (削除ここまで)(削除)

Upin

(削除ここまで)
(削除) (削除ここまで)(削除)

SEO star

(削除ここまで)
(削除) (削除ここまで)(削除)

Radio Streaming

(削除ここまで)
(削除) (削除ここまで)(削除)

Tablet Android

(削除ここまで)
(削除) (削除ここまで)(削除)

Jasa SEO

(削除ここまで)
(削除) (削除ここまで)(削除)

Jasa SEO Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Jasa SEO Indonesia

(削除ここまで)
(削除) (削除ここまで)(削除)

Bunga Rangkaian

(削除ここまで)
(削除) (削除ここまで)(削除)

Jam Tangan Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Baju Muslim

(削除ここまで)
(削除) (削除ここまで)(削除)

Tiket Pesawat

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Wanita

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Kickers

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Nike

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Crocs

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Online

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Futsal

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Tentara

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Boot

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu PDL

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Jual Sepatu

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Kulit

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Casual

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Pantofel

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Safety

(削除ここまで)
(削除) (削除ここまで)(削除)

Jasa SEO Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Upinson

(削除ここまで)
(削除) (削除ここまで)(削除)

Upin

(削除ここまで)
(削除) (削除ここまで)(削除)

Upin

(削除ここまで)
(削除) (削除ここまで)(削除)

Upin

(削除ここまで)
(削除) (削除ここまで)(削除)

Upin

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Sepatu Murah

(削除ここまで)
(削除) (削除ここまで)(削除)

Cheapes

(削除ここまで)
(削除) (削除ここまで)(削除)

Link Booking

(削除ここまで)
(削除) (削除ここまで)(削除)

Lorks

(削除ここまで)
(削除) (削除ここまで)(削除)

Edo Ziedo

(削除ここまで)
(削除) (削除ここまで)(削除)

Govr

(削除ここまで)
(削除) (削除ここまで)

depending on what encoding your database was created with. (MySQL defaults to latin1 so, even though Instiki uses UTF-8, the database may or may not see it that way.)

Revision from May 28, 2012 16:01:38 by Jacques Distler
Forward in time (11 more) | Back in time (24 more) | See current | Hide changes | History | Rollback | View: Source | Linked from: Upgrading, News, Installing on Shared Hosts, Known Bugs, Run on Port 80

AltStyle によって変換されたページ (->オリジナル) /