<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>linlin (linlin)</title>
    <link>https://ruby-china.org/linlin</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>rails 怎么解决{ production =&gt; production_sec }' is not a valid configuration. Expected 'production_sec' to be a URL string or a Hash. (ActiveRecord::DatabaseConfigurations::InvalidConfigurationError)</title>
      <description>&lt;p&gt;原来是 rails4.1，ruby2.2，现在进行了升级，使用了 rails 7.0.4 ruby 3.2。
启动后，为什么会这样：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="sr"&gt;/home/u&lt;/span&gt;&lt;span class="n"&gt;buntu&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;asdf&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;installs&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;3.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;3.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;activerecord&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;active_record&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;database_configurations&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;217&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`build_db_config_from_string': '{ production =&amp;gt; production_sec }' is not a valid configuration. Expected 'production_sec' to be a URL string or a Hash. (ActiveRecord::DatabaseConfigurations::InvalidConfigurationError)
    from /home/ubuntu/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/activerecord-7.0.5/lib/active_record/database_configurations.rb:203:in `&lt;/span&gt;&lt;span class="n"&gt;build_db_config_from_raw_config&lt;/span&gt;&lt;span class="s1"&gt;'
    from /home/ubuntu/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/activerecord-7.0.5/lib/active_record/database_configurations.rb:129:in `resolve'&lt;/span&gt;
    &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="sr"&gt;/home/u&lt;/span&gt;&lt;span class="n"&gt;buntu&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;asdf&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;installs&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;3.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ruby&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;3.2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gems&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;activerecord&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;7.0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;active_record&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;connection_handling&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;353&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`resolve_config_for_connection'
    from /home/ubuntu/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/activerecord-7.0.5/lib/active_record/connection_handling.rb:51:in `&lt;/span&gt;&lt;span class="n"&gt;establish_connection&lt;/span&gt;&lt;span class="s1"&gt;'
    from /opt/app/art/current/app/models/artwork.rb:2:in `&amp;lt;class:Artwork&amp;gt;'&lt;/span&gt;
    &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="sr"&gt;/opt/&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;art&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;artwork&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`&amp;lt;top (required)&amp;gt;'
    from &amp;lt;internal:/home/ubuntu/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb&amp;gt;:37:in `&lt;/span&gt;&lt;span class="nb"&gt;require&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;config/database.yml是这样的：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="ss"&gt;default: &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;default&lt;/span&gt;

  &lt;span class="ss"&gt;adapter: &lt;/span&gt;&lt;span class="n"&gt;mysql2&lt;/span&gt;
  &lt;span class="ss"&gt;encoding: &lt;/span&gt;&lt;span class="n"&gt;utf8&lt;/span&gt;
  &lt;span class="ss"&gt;pool: &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sx"&gt;%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %&amp;gt;
  username: root
  password: xx
  host: 172.17.0.1#(使用了docker mysql 5.7)
  port: 3306

development: &amp;amp;development
  &amp;lt;&amp;lt;: *default
  database: web

test: &amp;amp;test
  &amp;lt;&amp;lt;: *default
  database: web_test

production: &amp;amp;production
  &amp;lt;&amp;lt;: *default
  database: web

development_sec: &amp;amp;development
  &amp;lt;&amp;lt;: *default
  database: art

test_sec: &amp;amp;test
  &amp;lt;&amp;lt;: *default
  database: art_test

production_sec: &amp;amp;production
  &amp;lt;&amp;lt;: *default
  database: art

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 model 进行了数据库的选择&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Artwork&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
  &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;establish_connection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_sec"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="c1"&gt;#establish_connection :test_sec&lt;/span&gt;
  &lt;span class="c1"&gt;#ActiveRecord::Base.establish_connection(&lt;/span&gt;
  &lt;span class="c1"&gt;#  "mysql2://root:xx@172.17.0.1/art_test"&lt;/span&gt;
  &lt;span class="c1"&gt;#)&lt;/span&gt;
  &lt;span class="c1"&gt;#self.table_name = "artworks"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我尝试修改了连接数据库 的方式，但是无法连接，应该怎么解决？&lt;/p&gt;</description>
      <author>linlin</author>
      <pubDate>Tue, 27 Jun 2023 14:46:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/43199</link>
      <guid>https://ruby-china.org/topics/43199</guid>
    </item>
  </channel>
</rss>
