Sequel Migration not running up?
Having some trouble with the Migrations in Sequel and could use another set of eyes. I am running a migration that looks ok but no table is created. It is definitely connecting because I can see the schema_info table has been created. -M 0/1 changes the version as you would expect but still no table.
The command:
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
The output in Postgres:
test_db=# \dt
List of relations
Schema | Name | Type | Owner
--------+-------------+-------+----------
public | schema_info | table | postgres
(1 row)
test_db=# s开发者_如何学Celect * from schema_info;
version
---------
1
(1 row)
Run
sequel -m . -E > ~/Desktop/dbtest/testdb.yml
The -E adds a logger so you can see what is actually happening, and the > redirects the output into the testdb.yml logfile. If this is your first migration, you'll probably want to drop the database and recreate it (or at least the schema_info table). And obviously you have to be in the directory with the migrations for the -m . to work.
I would also recommend the following syntax for migration classes:
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
Using anonymous classes instead of named classes reduces the risk of a namespace collision.
精彩评论