【问题标题】:SQL Files and Ruby on RailsSQL 文件和 Ruby on Rails
【发布时间】:2013-12-07 21:50:30
【问题描述】:

所以我对 Ruby on Rails 有点陌生。在我的一个数据库课程中,老师要求我们使用我喜欢的任何工具创建一个简单的应用程序。该应用程序只需要能够获得新用户,让用户预约和添加患者(这是为医生服务的),所有这些只需将信息输入数据库并查询数据库以获取信息。

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

这可以用于任何 DBMS,我目前有一个用于 sql server 和 mysql 的脚本。

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

提前致谢!

【问题讨论】:

  • 不完全确定你的目标是什么,但我首先想到的是 Rake。
  • @TonyHopkinson 我有一个 SQL 脚本,我在其中创建数据库和所有表及其约束、主键和外键。如何让 rails 使用该脚本来创建数据库
  • 您可以在迁移和大多数其他地方connection.execute('big pile of SQL here')

标签: mysql sql ruby-on-rails ruby migration


【解决方案1】:

您的老师所说的“原始 SQL”是指所有 SQL,包括 CREATE TABLE 语句吗?还是只是 SELECT 语句?您可以在 Rails 中同时执行这两种操作,但您可以使用标准 Rails 迁移吗?

Rails 就像通过学习 C 来学习汇编程序。当您没有迷失在无尽的汇编程序海洋中时,您会更好地学习汇编程序。 Rails 将关系包装起来,因此您无需整天编写多余的 JOIN 子句。

这是“原始 SQL”的答案? Rails 中的常见问题解答:http://apidock.com/rails/ActiveRecord/Querying/find_by_sql。我会将其包装在一个可爱的记录器方法中,该方法将每个 SELECT 语句写入格式化文件,因此您可以将其作为作业提交。但你可以看出我在学校表现不佳......

【讨论】:

  • 是的,对于所有 SQL,它也意味着 CREATE TABLE 以及与 de FK 和 SELECT 的关系。只要所有交互都源自我需要手动进行的 SQL 脚本,我就可以使用迁移。
  • 将原始 SQL 也放入迁移中,就可以了。另外,如果我是邪恶的,我可以指出你可以 A> 在原始 Rails 中编写一个应用程序,B> 捕获日志中的所有 SQL,C> 复制 SQL 并将其放入 find_by_sql 语句中,D> ​​清理让它看起来像一个人写的,E>利润!
猜你喜欢
  • 2011-08-04
  • 2015-07-01
  • 2022-01-03
  • 1970-01-01
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
相关资源
最近更新 更多