ruby - 从外部 .sql 文件执行 SQL 语句

标签 ruby sequel

我有一个 schema.sql 文件,其中包含 SQL 语句形式的官方数据库结构,例如:

CREATE TABLE directory (id INTEGER PRIMARY KEY,   base TEXT,   index_file TEXT,   default_ctype TEXT,   cache_ttl INTEGER DEFAULT 0);
CREATE TABLE handler (id INTEGER PRIMARY KEY,
    send_spec TEXT, 
    send_ident TEXT,
    recv_spec TEXT,
    recv_ident TEXT,
   raw_payload INTEGER DEFAULT 0,
   protocol TEXT DEFAULT 'json');

我想将这些语句应用到我的数据库中以创建兼容的架构。有没有一种干净的方法来实现这一目标?

这里的意思很明确:

  • 纯 ruby /续集
  • 独立于底层数据库引擎
  • 不解析 .sql 文件

最佳答案

要么我没有正确理解目标,要么为什么不从文件中读取语句并使用默认的 ActiveRecord 方法执行它们?

ActiveRecord::Base.execute File.read('PATH_TO_FILE')

或使用续集:

DB.run File.read('PATH_TO_FILE')

关于ruby - 从外部 .sql 文件执行 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15246444/

相关文章:

ruby-on-rails - ActiveRecord 多个日期范围

Ruby Sequel : Array returned by query is being returned as a String object, 不是数组对象

ruby - Sequel 模型可以有 Array 属性吗?

ruby - 从字符串中解压缩 zip 存档

ruby - 目前有没有办法在 faSTLane 操作中提取 faSTLane 操作的输出?

ruby-on-rails - rake 中止! UTF-8 中的无效字节序列

mysql - Rails 应用程序数据库拉取过程中的 Heroku 问题:Mysql::Error MySQL 服务器已经消失

ruby - 非 Rails 应用程序中的 DatabaseCleaner 错误

Sequel gem 中的 MySQL 位运算符

ruby - 更改参数[ :link] before @link. 保存