Tuesday 21 September 2021

Rails 続き

そもそもテスト環境を作るのにてこずって。ローカルに DB/Rails と立てても良いんですが...

  Main の nginx に転送されてしまう

ってのが良く分からなくって。なんだが、どうも、それは DB に接続できなかった時の fall back のだめなエラーらしい。

結局わかったのは、

  podman -v hoge:fuga で diectory を mapping する時は、両方、絶対パス(/ から始まる)

ってっことで、これを間違えてたので config が古いままで、DBに接続できなかっただけ。そもそも、

  config に IP address をハードコードしてあって、環境変数で変えられない

ってのがだめだったらしい。それを乗り込えたら動いたんですが、次は

  PowerDNSのDBを、Rails の Active Record にする

どうも、Multi Database がちゃんと動くのは Rails 6 かららしく、またまた、Rails の version を上げることに。

ところがさっぱりわからん。どこで、どうやって DB と ruby がつながるわけ?

  classs LocalRecord と table local_records と class local_record の関係は?

なんだが、config/databbase.yml に複数のDBを書いて、

  development:
   main:
    database: akatsuki
   pdns:
    database: powerdnsk

その名前で、

  rails generate scaffold Domain name:string --database pdns

とすると、table domains が class Domain と class PdnsRecord に生成されるらしい。犯人はお前か。

table の grant が出てないとかもあったんですが、これで動いたんですが... どうも、

  app/models/pdns_record.rb
  class PdnsRecord < ApplicationRecord
   self.abstract_class = true
   self.inheritance_column = nil
   connects_to database: { writing: :pdns, reading: :pdns }
  end

を作ってやれば、それで良いだけらしい。これで、pdns database から、

  勝手にいろいろ調べて勝手に名前を変えて生成するのが Rails

ってことがわかりました。これでDBは接続終了。あと、もう少しだ。

 

No comments: