Das ist komisch. In meinem Rails 4 database.yml habe ich folgendes:
development:
adapter: postgresql
encoding: unicode
database: inspector_development
password:
pool: 5
Ich habe die Produktionsdatenbank von Heroku kopiert und mit diesem Formular in meine lokale Kopie von Postgresql importiert
curl -o latest.dump `heroku pgbackups:url --account personal`
pg_restore --verbose --clean --no-acl --no-owner -h localhost -U sam -d inspector_development latest.dump
Das Ergebnis zeigte die 88 erwarteten Benutzer inPGadmin in der Datenbank inspector_development auf osx. Die User-Tabelle zeigt jedoch auch nach dem Neustart der Schienen-App immer nur einen Benutzer an, nicht die 88, die ich in PGadmin sehe.
Ich habe gegoogelt, wie Sie feststellen können, was Rails als Eigenschaften des Datenbanknamens ansieht, um zu ermitteln, wo es diese nicht vorhandenen Datensätze findet.
Bei genauerer Betrachtung der User-Tabelle in PGadmin sehe ich null Spalten. Vielleicht irrt sich PGadmin? Ich kann nicht feststellen, wo der DB Rails sucht, damit ich das, thx, sam, beheben kann
Antworten:
11 für die Antwort № 1Dies funktioniert in Rails 3 und Rails 4
ActiveRecord::Base.connection.current_database
Dies funktioniert jedoch nur mit Treibern, die diese Methode implementiert haben. Zum Beispiel funktioniert es nicht für SQLite, aber für Mysql und Postgres.