首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tiny_tds:分割故障

tiny_tds:分割故障
EN

Stack Overflow用户
提问于 2014-06-22 18:33:31
回答 1查看 709关注 0票数 4

这与这个question类似。然而,answer发布的关于这个问题的文章,对我来说并不管用。我已经在我的Mac上安装了自由。我已经在我的GemFile中指定了以下内容。

代码语言:javascript
复制
gem 'tiny_tds'
gem 'activerecord-sqlserver-adapter', '~> 4.1.0'

我可以使用以下命令成功地连接到Azure SQL

代码语言:javascript
复制
tsql -H host_name.database.windows.net -U user_name -D database_name -p 1433 -P password

我还可以在irb成功地连接到Azure的。

代码语言:javascript
复制
require 'tiny_tds'
client = TinyTds::Client.new(:username => 'user_name@host_name', :password => 'password', :host =>'host_name.database.windows.net')

但是当我运行的时候,rake db:迁移我得到了以下错误,

代码语言:javascript
复制
[BUG] Segmentation fault at 0x007fff5f3ffff8
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin12.0]

然后是,

代码语言:javascript
复制
Control frame information
C level backtrace information
Other runtime information

最后,最后,

代码语言:javascript
复制
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort trap: 6

有谁能分享一些想法或建议吗?

更新:我的Database.yml看起来

代码语言:javascript
复制
development:
  #adapter: sqlite3
  #database: db/development.sqlite3
  #pool: 5
  #timeout: 5000
  adapter: sqlserver
  mode: dblib
  dataserver:
  host: host_name.database.windows.net
  port: 1433
  database: database_name
  username: user_name
  password: password
  timeout: 5000
  azure: true

我在IRB做了下面的调查,

代码语言:javascript
复制
2.1.1 :028 > ActiveRecord::Base.establish_connection(
2.1.1 :029 >        :adapter  => "sqlserver",
2.1.1 :030 >        :host     => "host_name.database.windows.net",
2.1.1 :031 >        :username => "user_name",
2.1.1 :032 >        :password => "password",
2.1.1 :033 >        :database => "database_name"
2.1.1 :034?>    )

得到了以下回应,

代码语言:javascript
复制
 => #<ActiveRecord::ConnectionAdapters::ConnectionPool:0x00000101e8c798 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x00000101e8c748>, @spec=#<ActiveRecord::ConnectionAdapters::ConnectionSpecification:0x00000101f3ceb8 @config={:adapter=>"sqlserver", :host=>"host_name.database.windows.net", :username=>"user_name", :password=>"password", :database=>"database_name"}, @adapter_method="sqlserver_connection">, @checkout_timeout=5, @dead_connection_timeout=5, @reaper=#<ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper:0x00000101e8c720 @pool=#<ActiveRecord::ConnectionAdapters::ConnectionPool:0x00000101e8c798 ...>, @frequency=nil>, @size=5, @reserved_connections=#<ThreadSafe::Cache:0x00000101e8c6d0 @backend={}, @default_proc=nil>, @connections=[], @automatic_reconnect=true, @available=#<ActiveRecord::ConnectionAdapters::ConnectionPool::Queue:0x00000101e8c658 @lock=#<ActiveRecord::ConnectionAdapters::ConnectionPool:0x00000101e8c798 ...>, @cond=#<MonitorMixin::ConditionVariable:0x00000101e8c630 @monitor=#<ActiveRecord::ConnectionAdapters::ConnectionPool:0x00000101e8c798 ...>, @cond=#<Thread::ConditionVariable:0x00000101e8c608>>, @num_waiting=0, @queue=[]>> 
EN

回答 1

Stack Overflow用户

发布于 2014-06-26 16:05:43

我会简化您的database.yml配置,将其简化为基本要素。

代码语言:javascript
复制
development:
 adapter: sqlserver
 host: "host.database.windows.net"
 port: 1433
 database: <database>
 username: <username>
 password: <password>
 timeout: 5000

但是首先,尝试模拟通过IRB中的db:migrate任务发生的连接实例。

代码语言:javascript
复制
 ActiveRecord::Base.establish_connection(
   :adapter  => "sqlserver",
   :host     => "host.database.windows.net",
   :username => <username>,
   :password => <password>,
   :database => <database>
 ) 

如果这是成功的,那么在database.yml中只使用这些值。如果您需要添加更多的配置值,每次添加一个。尽管这些核心人士应该做好这份工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24354399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档