我想迁移我的sqlite3数据库到Postgresql(我遵循Railscasts#342,但我在Ubuntu上)。 我aperitime_development
数据库rake db:create:all
后,我开始用水龙头一西纳特拉服务器(推英里sqlite3的DB),但是当我尝试做Sqlite3到Postgresql迁移通过水龙头上的错误
taps pull postgres://willy:[email protected]/aperitime_development http://willy:[email protected]:5000'
的的数据都是不可复制的Postgres的数据库和控制台不会终止正确:
Receiving schema
Schema: 0% | | ETA: --:--:--
Schema: 25% |========== | ETA: 00:00:07
Schema: 50% |===================== | ETA: 00:00:03
Schema: 75% |=============================== | ETA: 00:00:01
Schema: 100% |==========================================| Time: 00:00:04
Receiving data
4 tables, 800 records
/usr/lib/ruby/gems/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:175:in 'async_exec': PG::Error: ERROR: integer out of range (Sequel::DatabaseError)
from /usr/lib/ruby/gems/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:175:in `block (2 levels) in execute'
from /usr/lib/ruby/gems/1.9.1/gems/sequel-3.20.0/lib/sequel/database/logging.rb:28:in `log_yield'
from /usr/lib/ruby/gems/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:175:in `block in execute'
from /usr/lib/ruby/gems/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:158:in `check_disconnect_errors'
from /usr/lib/ruby/gems/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:175:in `execute'
和erros继续。
有什么想法?
这是我的database.yml
development:
adapter: postgresql
encoding: unicode
database: aperitime_development
pool: 5
username: willy
password: piero
test:
adapter: postgresql
encoding: unicode
database: aperitime_test
pool: 5
username: willy
password: piero
这里是我的schema.rb
ActiveRecord::Schema.define(:version => 20120630154954) do
create_table "locals", :force => true do |t|
t.string "nome"
t.string "indirizzo"
t.text "descrizione"
t.integer "Tel", :limit => 8
t.integer "voto"
t.string "mappa"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "users", :force => true do |t|
t.string "nome"
t.string "email"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "password_digest"
t.string "remember_token"
t.boolean "admin", :default => false
end
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
add_index "users", ["remember_token"], :name => "index_users_on_remember_token"
end
它似乎是插入数据到一个整数字段溢出它?您是否比较了Postgresql DB的模式以及您尝试插入的值以查看是否超出范围。 – Doon 2012-07-20 14:18:47
在某些情况下,我插入了一些电话号码,他们可能是这些奇怪的值?我如何改变它们? – bugman 2012-07-20 14:26:07
是电话号码?它应该是一个整数吗?字符串不会更好吗? – Doon 2012-07-20 14:46:14