sql >> Databáze >  >> RDS >> Mysql

Proveďte jednorázový dotaz na jinou databázi a tabulku

Za předpokladu, že je přístupný pomocí stejných přihlašovacích údajů k databázi a na stejném serveru MySQL, nejjednodušším způsobem by bylo spustit dotaz specifikující databázi a tabulku v FROM klauzule dotazu jako taková:

ActiveRecord::Base.connection.select_one(
    "SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")

select_one vrátí hodnotu hash sloupců. Další informace o metodách, které můžete použít na connection objekt, viz tuto dokumentaci .

Druhou možností je vytvořit podtřídu ActiveRecord a zavolat establish_connection :

class Blog < ActiveRecord::Base
  establish_connection :blog

  def self.most_recent_post
    connection.select_one("SELECT * FROM posts ...")
  end
end

Budete si také muset vytvořit blog záznam databáze ve vašem database.yml soubor. Viz establish_connection pro více podrobností, i když bohužel použití tímto způsobem je skutečně známo pouze pohledem na zdrojový kód pro establish_connection .

Pak můžete použít připojení k databázi blogu v dotazech, například:

Blog.connection.select_one("SELECT * FROM posts ...")

Na tom, jak to udělat tímto způsobem, je hezké, že nyní máte pěkné místo pro definování metody (ve třídě Blog jako metodu třídy) pro načítání dat, jak jsem to udělal výše.

Obě tyto strategie by měly fungovat dobře s Rails 2.x nebo 3.x.




  1. Základy správy schémat PostgreSQL

  2. Zobrazení průběhu při doInbackground

  3. Postgres Tipy A Triky

  4. Připojení vs. dílčí dotaz