2

我有一个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');

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

这里干净的意思:

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

1 回答 1

2

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

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

或与Sequel

DB.run File.read('PATH_TO_FILE')
于 2013-03-06T12:08:27.310 回答