我需要做什么才能使用 gem 对 SQL Server 2008 数据库服务器运行测试activerecord-sqlserver-adapter
?
我可以通过 database.yml 中的开发设置使用 32 位 ODBC 连接很好地连接到开发数据库:
#SQL Server
development:
adapter: sqlserver
mode: odbc
dsn: <odbc_name>
username: <db_user>
password: <db_password>
host: <sql host>
我已经开始设置一些测试,但是在运行时遇到了错误:
rake db:test:prepare
这是错误:
rake aborted!
ODBC::Error: 37000 (3708) [Microsoft][SQL Native Client][SQL Server]Cannot drop
the database 'master' because it is a system database.: DROP DATABASE [master]
Tasks: TOP => db:test:load => db:test:purge
(See full trace by running task with --trace)
这个错误对我没有意义。为什么它试图删除主数据库?
我在 database.yml 中的测试设置与我上面的 dev 完全相同,只是它指向不同的 odbc,它指向不同的数据库。
编辑
我注意到,当我运行rake db:test:prepare
的第一步必须是删除测试数据库。所以它首先知道它应该使用什么数据库。
为什么它会尝试删除主人?
这是因为当 sql 找不到默认数据库时,它默认为用户 master 并且rake db:test:prepare
无法创建用户默认 db,因此它循环回到开头并尝试再次删除?