レガシー データベースを使用しています。命名規則はいたるところにあり、一貫性がありません。Ruby on Rails アプリを作成していますが、Rails の組み込み機能でデータベースがうまく機能していないことは明らかです。これが私たちの戦略であり、いくつかの意見を得たいと思っていました:
- 新しいデータベースを作成し、Rails アプリをこのデータベースに向けます
- 古いデータベースのテーブル/列を、レールに適した新しいテーブル名/列名にマッピングします
- map を使用してビューを生成し、Rails アプリがこれらのテーブルが本物であると「考える」ようにします。
- 発展させる
- Rails アプリが古い UI を引き継いで、実際のデータをビューではなく実際のテーブルに移行する準備ができたら、元に戻ります
私が直面している問題は、この MySQL ビュー生成スクリプトを Rails アプリに適合させる方法です。このようなものは、ファイル構造のどこに収まりますか? ある種のプラグインとして?
テーブル マッピング:
+--------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| database | varchar(64) | NO | | | |
| current_name | varchar(64) | NO | | | |
| current_pk | varchar(64) | YES | | NULL | |
| new_system_prefix | varchar(255) | YES | | NULL | |
| new_format | varchar(255) | YES | | NULL | |
| new_vendor | varchar(255) | YES | | NULL | |
| new_name | varchar(64) | YES | | NULL | |
| new_pk | varchar(64) | YES | | NULL | |
| notes | varchar(255) | YES | | NULL | |
+--------------------+------------------+------+-----+---------+----------------+
列のマッピング:
+-----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| table_id | int(11) unsigned | YES | MUL | NULL | |
| current_name | varchar(255) | YES | | NULL | |
| current_type | varchar(255) | YES | | NULL | |
| current_default | varchar(255) | YES | | NULL | |
| new_name | varchar(255) | YES | | NULL | |
| new_type | varchar(255) | YES | | NULL | |
| new_default | varchar(255) | YES | | NULL | |
| extra | varchar(255) | YES | | NULL | |
| notes | varchar(255) | YES | | NULL | |
+-----------------+------------------+------+-----+---------+----------------+