0

MSSQLサーバーで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

そのため、DBを削除して再作成するように見えます。

DBサーバーのすべての役割にユーザーを追加し、再試行してこれを取得しました。

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」ユーザーの両方でこれを試しましたが、どちらも機能しません。Enterprise Managerと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を使用する

4

2 に答える 2

0

デフォルトのデータベースを「マスター」に設定すると、問題が解決することがわかりました。

セキュリティ > ログイン > ログインをクリック> デフォルト データベース: master

于 2015-10-08T07:05:25.263 に答える
0

修正: PRODUCT_TEST データベースを手動で再作成し、アカウントを所有者として割り当てました。今回は、ツールはデータベースを削除せず、正しくアクセスできました

于 2012-06-27T15:15:54.400 に答える