我正在使用旧数据库。命名约定到处都是并且不一致。我们正在编写一个 Ruby on Rails 应用程序,但显然数据库不能很好地与 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 | |
+-----------------+------------------+------+-----+---------+----------------+