2005-08-15 21:17:32 +02:00
|
|
|
require 'erb'
|
|
|
|
|
|
|
|
def create_options
|
|
|
|
if @db == 'mysql'
|
|
|
|
'ENGINE = ' + (mysql_engine rescue @mysql_engine)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def db_quote(column)
|
|
|
|
case @db
|
|
|
|
when 'postgresql'
|
|
|
|
return "\"#{column}\""
|
|
|
|
when 'sqlite', 'sqlite3'
|
|
|
|
return "'#{column}'"
|
|
|
|
when 'mysql'
|
|
|
|
return "`#{column}`"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def db_structure(db)
|
|
|
|
db.downcase!
|
|
|
|
@db = db
|
|
|
|
case db
|
|
|
|
when 'postgresql'
|
|
|
|
@pk = 'SERIAL PRIMARY KEY'
|
|
|
|
@datetime = 'TIMESTAMP'
|
|
|
|
@boolean = "BOOLEAN"
|
|
|
|
when 'sqlite', 'sqlite3'
|
|
|
|
@pk = 'INTEGER PRIMARY KEY'
|
|
|
|
@datetime = 'DATETIME'
|
|
|
|
@boolean = "INTEGER"
|
|
|
|
when 'mysql'
|
|
|
|
@pk = 'INTEGER UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY'
|
|
|
|
@datetime = 'DATETIME'
|
|
|
|
@boolean = "TINYINT"
|
|
|
|
@mysql_engine = 'InnoDB'
|
|
|
|
else
|
|
|
|
raise "Unknown db type #{db}"
|
|
|
|
end
|
|
|
|
|
|
|
|
s = ''
|
|
|
|
Dir[RAILS_ROOT + '/db/*.erbsql'].each do |filename|
|
|
|
|
s += ERB.new(File.read(filename)).result
|
|
|
|
end
|
|
|
|
s
|
|
|
|
end
|