2013-12-07 171 views
-1

所以我对Ruby on Rails有点新鲜。在我的一个数据库类中,老师要求我们使用我喜欢的任何工具创建一个简单的应用程序。该应用程序必须能够获得新用户,让用户预约并添加患者(仅供医生使用),只需输入信息到数据库并查询数据库中的信息即可。SQL文件和Ruby on Rails

问题是,在这个项目的规范中说每个与数据库的交互都必须在“原始SQL”中完成,所以我不能使用Ruby On Rails实用程序。我一直在使用这个框架大约六个月,所以我熟悉它,并且我知道如何为数据库播种和查询制作“原始SQL”,但我不知道如何从我的database.sql文件启动项目,在那里创建模式和所有表。

这可以与任何DBMS,我目前有一个脚本为SQL服务器和MySQL。

如何使用sql文件创建我的项目来创建数据库而不是使用rails迁移?

在此先感谢!

+0

不完全确定你要去哪里,但我的第一个想法是Rake。 –

+0

@TonyHopkinson我有一个SQL脚本,我创建的数据库和所有表与他们的约束和主键和外键。我如何让rails使用该脚本创建数据库 – PatoBeltran

+0

您可以在迁移和大多数其他地方使用'connection.execute'('这里有大量的SQL')。 –

回答

0

通过“原始SQL”你的老师是不是意味着全部是的SQL,包括CREATE TABLE语句?或者只是SELECT语句?你可以在Rails中同时使用两种,但是你可以使用标准的Rails迁移吗?

Rails就像通过学习C来学习汇编程序一样,当你不失去一个无尽的海洋时,你会更好地学习汇编程序。 Rails包装关系,所以你不需要花费一整天的时间编写冗余的JOIN子句。

下面是“原始SQL?”的答案。 Rails常见问题解答:http://apidock.com/rails/ActiveRecord/Querying/find_by_sql。我会用一个可爱的记录器方法来包装它,将每个SELECT语句写入一个格式化的文件,所以你可以把它作为你的作业。但你可以告诉我在学校里做得不是很好......

+0

对于所有的SQL,它也意味着CREATE TABLE以及与FK和SELECT的关系。如果所有交互都是由我需要手动创建的SQL脚本发起的,那么我可以使用迁移。 – PatoBeltran

+0

将原始SQL也放入迁移中,然后进行设置。此外,如果我是邪恶的,我可以指出你可以在原始Rails中编写应用程序,B>捕获日志中的所有SQL,C>复制SQL并将其放入'find_by_sql'语句中,D> ​​clean它看起来像一个人写它,E>利润! – Phlip

+0

嘿@菲利普谢谢! – PatoBeltran