README.md in master_data_tool-0.19.1 vs README.md in master_data_tool-0.20.0
- old
+ new
@@ -16,11 +16,12 @@
- 既存DBからCSVとしてデータをダンプする
## 前提条件
- マスタデータの更新は同時並行で実行されない
-- `db/fixtures/#{table_name}.csv` の命名規則
+- `db/fixtures/#{spec_name}/#{table_name}.csv` の命名規則
+ - 1DBの場合は `db/fixtures/#{table_name}.csv`
## インストール
```ruby
gem 'master_data_tool'
@@ -32,26 +33,74 @@
Or install it yourself as:
$ gem install master_data_tool
+## 初期設定
+
+`config/initializers/master_data_tool.rb`
+
+### 複数DB
+
+```ruby
+Rails.application.reloader.to_prepare do
+ MasterDataTool.configure do |config|
+ primary_config = MasterDataTool::SpecConfig.new(
+ spec_name: :primary,
+ master_data_dir: Rails.root.join('db/fixtures/primary'),
+ application_record_class: ::ApplicationRecord
+ )
+
+ animals_config = MasterDataTool::SpecConfig.new(
+ spec_name: :animals,
+ master_data_dir: Rails.root.join('db/fixtures/animals'),
+ application_record_class: ::AnimalsRecord
+ )
+
+ config.spec_configs = [
+ primary_config, animals_config
+ ]
+ end
+
+end
+```
+
+### 単一DB
+
+```ruby
+Rails.application.reloader.to_prepare do
+ MasterDataTool.configure do |config|
+ primary_config = MasterDataTool::SpecConfig.new(
+ spec_name: '',
+ master_data_dir: Rails.root.join('db/fixtures'),
+ application_record_class: ::ApplicationRecord
+ )
+
+ config.spec_configs = [
+ primary_config
+ ]
+ end
+end
+```
+
## Usage
### マスタデータの投入
| option | default | 内容 |
-|---------------------------------| --- |-----------------------------------------------------------------|
-| --dry-run | true | dry-runモードで実行する(データ変更は行わない) |
-| --verify | true | データ投入後に全テーブル・全レコードのバリデーションチェックを行う |
-| --only-import-tables | [] | 指定したテーブルのみデータ投入を行う |
-| --except-import-tables | [] | 指定したテーブルのデータ投入を行わない |
-| --only-verify-tables | [] | 指定したテーブルのみ投入後のバリデーションチェックを行う |
-| --except-verify-tables | [] | 指定したテーブルのバリデーションチェックを行わない |
-| --skip-no-change | true | CSVファイルに更新がないテーブルをスキップする |
-| --silent | false | 結果の出力をやめる |
-| --delete-all-ignore-foreign-key | false | 外部キー制約を無視してレコードを消すかどうか |
-| --override-identifier | nil | fixtures/#{override_identifier} のディレクトリにある内容でfixturesを上書きして投入する |
+|---------------------------------|---------|-----------------------------------------------------------------|
+| --dry-run | true | dry-runモードで実行する(データ変更は行わない) |
+| --verify | true | データ投入後に全テーブル・全レコードのバリデーションチェックを行う |
+| --spec-name | nil | 対象となるDBのspec name |
+| --only-import-tables | [] | 指定したテーブルのみデータ投入を行う |
+| --except-import-tables | [] | 指定したテーブルのデータ投入を行わない |
+| --only-verify-tables | [] | 指定したテーブルのみ投入後のバリデーションチェックを行う |
+| --except-verify-tables | [] | 指定したテーブルのバリデーションチェックを行わない |
+| --skip-no-change | true | CSVファイルに更新がないテーブルをスキップする |
+| --silent | false | 結果の出力をやめる |
+| --delete-all-ignore-foreign-key | false | 外部キー制約を無視してレコードを消すかどうか |
+| --override-identifier | nil | fixtures/#{override_identifier} のディレクトリにある内容でfixturesを上書きして投入する |
```bash
bundle exec master_data_tool import
```
@@ -117,12 +166,12 @@
add_index 'master_data_statuses', ["name"], name: "idx_master_data_statuses_1", unique: true, using: :btree
add_index 'master_data_statuses', ["name", "version"], name: "idx_master_data_statuses_2", using: :btree
```
-
## Tips
+
### マスタデータ投入でどうなるか?を調べる
```
RAILS_ENV=development bundle exec master_data_tool import > /tmp/dry-run.txt
```
@@ -172,11 +221,11 @@
export DB_PASSWORD=f3WpxNreVT2NgQry
export DB_NAME=master_data_tool_test
```
- dockerでMySQLを立ち上げるたびにポートは変わるのでDB_PORTは都度設定する
- - direnvを使っているならば `direnv reload` すればいい
+ - direnvを使っているならば `direnv reload` すればいい
```
./scripts/setup.sh
```
@@ -185,10 +234,9 @@
```
bundle exec appraisal activerecord52 rspec
bundle exec appraisal activerecord61 rspec
bundle exec appraisal activerecord70 rspec
```
-
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/taka0125/master_data_tool.