我正在使用yaml_db
創業板將我的數據庫從PHP
/mySQL
遷移至RoR
/Postgres
。我讓我的輸入YAML文件的在線1555870上面的錯誤(〜4M的)當我運行:第1行不允許使用心理控制字符1
bundle exec rake db:data:load RAILS_ENV=production
這似乎是行或大小依賴 - 我已經將範圍縮小到這一行,目前上有一個評論:
堆棧跟蹤:
rake aborted!
Psych::SyntaxError: (<unknown>): control characters are not allowed at line 1 column 1
/home/signup/app/releases/11/vendor/bundle/ruby/2.1.0/gems/yaml_db-0.3.0/lib/yaml_db.rb:61:in `load_documents'
/home/signup/app/releases/11/vendor/bundle/ruby/2.1.0/gems/yaml_db-0.3.0/lib/serialization_helper.rb:57:in `block in load'
/home/signup/app/releases/11/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
/home/signup/app/releases/11/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/transaction.rb:188:in `within_new_transaction'
/home/signup/app/releases/11/vendor/bundle/ruby/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
/home/signup/app/releases/11/vendor/bundle/ruby/2.1.0/gems/yaml_db-0.3.0/lib/serialization_helper.rb:56:in `load'
/home/signup/app/releases/11/vendor/bundle/ruby/2.1.0/gems/yaml_db-0.3.0/lib/serialization_helper.rb:31:in `load'
/home/signup/app/releases/11/vendor/bundle/ruby/2.1.0/gems/yaml_db-0.3.0/lib/tasks/yaml_db_tasks.rake:35:in `block (3 levels) in <top (required)>'
Tasks: TOP => db:data:load
(See full trace by running task with --trace)
任何想法?
有一些不可見的控制字符滑入YAML?你能否給這個YAML的那塊大塊看看有沒有奇怪的東西出現? –
好建議@mu,但我看到的都是'$'行結束符。 –
任何你不只是從MySQL中傾銷CSV並在PostgreSQL中做COPY來加載數據的原因?您必須手動重寫模式,但這不應該那麼困難。或者也許看看其他不使用YAML的工具,對於這樣的任務,YAML似乎是一個非常奇怪的選擇。 –