redmineのデータをsqliteからmysqlにインポートする方法


しばらくの間、redmine+sqlite 3を使用してプロジェクトを管理していましたが、管理データの膨張に伴い、redmineの速度が遅くなり、sqliteの性能に関係しているのではないかと疑い、データベースをmysqlに変更したいので、sqlite 3からmysqlにデータをインポートする必要があります.
 
実装の原理
railsのplugin yaml_dbでsqliteからyaml形式のファイルにデータをインポートし、ファイルからmysqlにデータをインポートします.
 
具体的な手順
1.yaml_のインストールdbプラグイン.
 
// $REDMINE_ROOT  redmine    
cd $REDMINE_ROOT
ruby script/plugin install git://github.com/adamwiggins/yaml_db.git

 
2.redmineの管理データをsqliteからyamlファイルに導き、デフォルトdumpファイルはredmineディレクトリの下db/dataである.yml.
 
rake db:dump RAILS_ENV=production

 
3.redmineデータベース関連構成をmysqlに変更します.
  • mysql関連パッケージをインストールします.
    gem install mysql
  • mysql 5を使用する場合.1以上のバージョンでは、上記のコマンドでエラーが発生する可能性があります.libmySQL.dllをダウンロードし、rubyのbinディレクトリの下に配置する必要があります.
  • redmineインストールディレクトリの下で、修正ファイルconfig/database.yml production 。
    production:
      adapter: mysql
      database: redmine
      host: localhost
      username: redmine
      password: my_password
  • mysqlが使用する標準ポート3306でない場合、上記構成に次の行を加える必要がある.
    port: 3307
    
     
  • mysqlで必要なtableとユーザを生成します.
    create database redmine character set utf8;
    create user 'redmine'@'localhost' identified by 'my_password';
    grant all privileges on redmine.* to 'redmine'@'localhost';

  • 4.データを2.生成されたファイルdb/data.yamlはmysqlにインポートされます.
    rake db:load RAILS_ENV=production

     
    5.redmineを再起動すると、バックグラウンドDBはmysqlであり、sqliteよりも速度が大幅に向上するはずです.