我如何使用rake:db:用mssqlserver准备?

时间:2012-06-08 15:15:53

标签: sql-server ruby-on-rails-3 jruby

我正在尝试使用MS SQL服务器设置Rails测试。目前,Rails在同一SQL服务器实例上的正常开发环境环境中运行良好。

我最初尝试通过手动创建一个数据库,该数据库的登录名与我用于开发的相同的登录名称为PRODUCT_TEST。数据库创建很好。

当我跑rake db:test:prepare我得到了这个

C:\Code\git.product>rake db:test:prepare
rake aborted!
ActiveRecord::JDBCError: CREATE DATABASE permission denied in database 'master'.: CREATE DATABASE PRODUCT_TEST

所以看起来它会掉线并重新创建数据库。

我将用户添加到数据库服务器的所有角色中,然后再次尝试并获得此功能。

C:\Code\git.product>rake db:test:prepare --trace
** Invoke db:test:prepare (first_time)
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:abort_if_pending_migrations
** Execute db:test:prepare
** Invoke db:test:load (first_time)
** Invoke db:test:purge (first_time)
** Invoke environment
** Execute db:test:purge
rake aborted!
The driver encountered an unknown error: Cannot open database "PRODUCT_TEST" requested by the login. The login failed.
C:/Program Files/jruby-1.7.0.preview1/lib/ruby/gems/shared/bundler/gems/activerecord-jdbc-adapter-e49ec53fb369/lib/arjdbc/jdbc/connection.rb:91:in `initialize'
C:/Program Files/jruby-1.7.0.preview1/lib/ruby/gems/shared/bundler/gems/activerecord-jdbc-adapter-e49ec53fb369/lib/arjdbc/jdbc/adapter.rb:33:in `initialize'

数据库不再存在且已被删除。我用我创建的用户和'sa'用户尝试了这个,但都没有用。我能够在企业管理器和rails中使用或者很好地连接到数据库服务器和我的开发数据库。

database.yml看起来像这样

test:
  adapter: jdbcmssql
  username: sa
  password: password
  host: 127.0.0.1
  database: PRODUCT_TEST

知道我做错了什么吗?

感谢。

注意:使用Rails 3.2.3,JRuby 1.7.0.preview,Microsoft SQL Server Express Edition(64位)10.50.1617.0

2 个答案:

答案 0 :(得分:0)

修复:我手动重新创建了PRODUCT_TEST数据库,并将该帐户指定为所有者。这次该工具没有删除数据库并且能够正确访问它

答案 1 :(得分:0)

我发现将默认数据库设置为“master”解决了这个问题。

安全>登录> 点击登录>默认数据库:master