我写了一个小的Ruby脚本,它本身连接到MySQL数据库,并创建表(如果该表尚不存在)。在此之后,脚本应该存储在该表中的内容我尝试使用存储这样的数据:创建MySQL行/列
Table.create(:foo => "bar", :foobar => "something", :blallala => "blololl")
我也试过
Table.new(:foo => "bar", :foobar => "something", :blallala => "blololl")
但似乎做同样的,因为我总是得到错误:
Mysql::Error: Table 'my-username.my-dbname' doesn't exist: SHOW FULL FIELDS FROM table-name
所以这是我到目前为止:
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "localhost",
:username => "my-username",
:password => "my-password",
:database => "my-db-name",
:encoding => "UTF8"
)
table_name = "my_table"
unless ActiveRecord::Base.connection.tables.include? table_name
ActiveRecord::Schema.define do
create_table :"#{table_name}" do |table|
table.column :foo, :string
table.column :bar, :string
table.column :blallala, :string
end
end
end
class Table < ActiveRecord::Base
self.table_name = "#{table_name}"
end
Table.create(:foo => "bar", :foobar => "something", :blallala => "blololl")
#Table.new(:foo => "bar", :foobar => "something", :blallala => "blololl")
所以,问题是:如何真正创建一个columo /行,为什么Table.create(:foo => "bar", :foobar => "something", :blallala => "blololl")
不行?
所以,这里有什么问题? –
的问题是:如何真正创建一个columo /行?为什么'Table.create(:富=> “栏”,:foobar的=> “东西”,:blallala => “blololl”)'不行? –
您无法创建表并同时向其中插入数据。它必须是两个单独的陈述。所以难怪你的前两个样本不工作。 –