ruby-on-rails - 使用 'taps' gem 在 Windows 上将 SQLite3 迁移到 PostgreSQL 时出现 CantOpenException

标签 ruby-on-rails ruby postgresql sqlite sequel

我正在尝试使用“taps”gem ( https://github.com/ricardochimal/taps ) 将 SQLite3 数据库迁移到 PostgreSQL 数据库,如 Change from SQLite to PostgreSQL in a fresh Rails project 中所述。并在 http://railscasts.com/episodes/342-migrating-to-postgresql

我有一台 Windows 7 计算机,在 c:\Sites\MySite 中有一个 Rails 应用程序,在 c:\Sites\MySite\db\development.sqlite3 中有数据库

每当我尝试启动 Taps 服务器时,都会出现此异常:

C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/sqlite.rb:62:in `initialize': SQLite3::CantOpenException: unable to open database file (Sequel::DatabaseConnectionError)

这是我尝试过的(所有尝试都是在使用管理员权限运行命令提示符时尝试的):

rem From C:\Sites\MySite:
taps server sqlite://db/development.sqlite3 eo secret
taps server sqlite:///db/development.sqlite3 eo secret
taps server sqlite://c:/sites/mysite/db/development.sqlite3 eo secret
taps server sqlite:///c:/sites/mysite/db/development.sqlite3 eo secret
rem From C:\Sites\MySite\db:
taps server sqlite://development.sqlite3 eo secret
taps server sqlite:///development.sqlite3 eo secret

以上方法均无效。 Taps gem 的文档并没有被证明有帮助。这样做的正确方法是什么?

最佳答案

错误表明文件无法打开,但至少您提供的几个连接字符串应该可以工作。

您可以尝试从 C:\Sites\MySite 执行以下操作(直接使用 Sequel,而不是点击):

sequel -C sqlite://db/development.sqlite3 postgres://user:pass@host/database

关于ruby-on-rails - 使用 'taps' gem 在 Windows 上将 SQLite3 迁移到 PostgreSQL 时出现 CantOpenException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16486962/

相关文章:

html - 导航栏向左浮动使内容在同一行

ruby-on-rails - 除非手动调用,否则扫地机无法工作,这是怎么回事?

ruby-on-rails - 在 Rails 应用程序中实现 Web 服务客户端的最佳实践

ruby-on-rails - log/production.log 文件存在但为空

java - 根据用户输入在PreparedStatement中使用setTime()或setNull()

ruby-on-rails - 与 ip 绑定(bind)后,Action Cable 不工作

ruby-on-rails - 基于来源的条件 .gitignore

ruby - 使用Nokogiri阅读文档时如何处理ssl/force ssl_version?

php - Doctrine2/PostgreSQL - 具有可空关系的选择错误

postgresql - 查找字符串在特定位置包含特定字符的行