在续集中的迁移遇到一些麻烦,可能会使用另一组眼睛。 我正在运行看起来正常的迁移,但没有创建表。它肯定是连接的,因为我可以看到schema_info表已经创建。 -M 0/1按预期更改版本但仍然没有表格。
命令:
sequel -m . -M 1 ~/Desktop/dbtest/testdb.yml
001_testdb.rb:
class TestDb < Sequel::Migration
def up
create_table( "terminals") do
primary_key :id
Integer :location_id
Integer :merchant_id
BigDecimal :terminal_id, :size=>[11, 0]
String :reference, :size=>255
DateTime :created_at
DateTime :updated_at
String :image, :default=>"default.jpg", :size=>255
end
end
def down
drop_table :terminals
end
end
Postgres的输出:
test_db=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------------+-------+----------
public | schema_info | table | postgres
(1 row)
test_db=# select * from schema_info;
version
---------
1
(1 row)
答案 0 :(得分:3)
运行
sequel -m . -E > ~/Desktop/dbtest/testdb.yml
-E添加了一个记录器,以便您可以看到实际发生的情况,并且&gt;将输出重定向到testdb.yml日志文件。如果这是您的第一次迁移,您可能希望删除数据库并重新创建它(或至少是schema_info表)。显然,您必须在目录中包含-m的迁移。工作。
我还建议使用以下迁移类语法:
Class.new(Sequel::Migration) do
def up
create_table(:terminals) do
primary_key :id
Integer :location_id
Integer :merchant_id
BigDecimal :terminal_id, :size=>[11, 0]
String :reference, :size=>255
DateTime :created_at
DateTime :updated_at
String :image, :default=>"default.jpg", :size=>255
end
end
def down
drop_table :terminals
end
end
使用匿名类而不是命名类可以降低命名空间冲突的风险。