这是我的第一篇文章,所以请耐心等待我...... :)
我现在正在学习铁路,并参加了一个内部项目来帮助我并进行适当的实践练习。
情况是这样的: 我们有一个现有的MS SQL Server 2000数据库,其中包含许多客户。通常的东西。 我不知道是谁设计的,但是有一个巨大的表“客户”,其中包含所有细节。
很快我们就会将客户转移到新公司,并需要跟踪运动。 因此,应用程序应该具有特定客户的移动详细信息的快照:是通过电话呼叫,通过其他方式与之交谈还是通过其他方式联系。谈话记录。他是否同意搬家。等等......
因此,原始客户数据应该从MS SQL汇集,并且所有新的跟踪数据应该在适当的新rails数据库中。 我在考虑一些事情: 1.汇集来自旧数据库的客户记录,并在新数据库中完成其余工作。 这个不好,因为我的研究表明rails不能同时使用两个DB。 2.连接到旧的MS SQL并在那里完成所有工作,创建新的必要表。 这个似乎很麻烦。 “odbc”适配器给我错误。 “sqlserver”适配器不适用于mssql 2000 另外,我预测使用现有的MS DB会有很多麻烦。 我觉得这种方法最合理。 将客户表从旧的MS SQL DB转储到CVS,并将其导入为rails应用程序创建的新sqlite数据库。
如果您想到解决此问题的其他方法,请告诉我。
使用第三种方法,我仍然会看到许多问题,如果可能的话,我会帮助他们。 例如,rails在表中创建了其他字段,因此数据导入可能不起作用。还是我弄错了? 第三种方法听起来对你有用吗?你看到任何陷阱吗?建议?
非常感谢。
答案 0 :(得分:0)
所以不幸的是,ruby在Windows上运行效果不佳,MSSQL可能是rails db的最差选择。鉴于我可以在Linux上部署MySQL或PG,我会从旧数据库中导出数据,并完全重新开始,所以编写一个数据导入脚本,按照rails喜欢的方式对事物进行整形。第一步是转向rails约定,因此Customer模型将有一个customers表,其中一个名为id的自动递增主键字段是一个整数。所有字段都使用“大案例”(全部小写,下划线分隔单词),以及所有日期时间表的审计字段,并调用created_at / updated_at。绝对是一种痛苦(特别是如果你是铁杆的新手),但是如果你试图对抗惯例,你将会有一个地狱般的时间,并且至少对平台不太满意。对于那些不会存储大量数据并且只能由一个人使用的应用程序,IMO sqlite是一个糟糕的选择。