webentwicklung-frage-antwort-db.com.de

Zugriff auf die Standard-DBs von Rails sqlite

Ich möchte die Daten in meiner Datenbank anzeigen, während ich mit Rails entwickle (eigentlich in allen drei Bereichen Entwicklung, Test und Produktion). Ich habe die configs nicht angefasst, also sollte es einfach sein, aber ich konnte keine brauchbaren Informationen finden.

Ich habe keine Ahnung, was die Verbindungszeichenfolge sein könnte oder wo sie eingegeben werden sollte, da Aptana (v.3) die gute alte Explorer-Ansicht für Datenquellen fehlt, die ich von Eclipse kenne. Könnte mich jemand in die richtige Richtung weisen?

EDIT: Ich arbeite an Linux - Mint 12

48
kostja

Sie haben es versäumt, das verwendete Betriebssystem zu erwähnen.

Eine Möglichkeit besteht darin, den Befehl sqlite3 in Ihrem Terminal zu verwenden.

sqlite3 db/development.sqlite3

Wenn Sie beispielsweise Ihre Zeilen untersuchen, sollten Sie eine Rails-Konsole verwenden.

Rails c
> User.all # Where user is your model.

HINWEIS: Ändern Sie Ihr DB-Schema nicht direkt über sqlite3. Dies kann an Sie gewöhnt sein, wenn Sie aus einem anderen Web-Stack-Hintergrund stammen. Dies liegt daran, dass sich der Zustand bei der nächsten Ausführung der Migrationen von den Erwartungen von Rails unterscheidet.

74
Gazler

Rails 3 bietet einen generischen Befehl für den Zugriff auf den richtigen Datenbankclient und übergibt den Namen der richtigen Datenbank für Ihre aktuelle Umgebung. Dieser Befehl ist Rails dbconsole, der zu Rails db verkürzt werden kann.

$ Rails db
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> 

Dieser Befehl bietet nicht viel mehr als die Antwort von Gazler. In der Tat ist sein Ratschlag für die Verwendung der Konsole ein guter Ratschlag. Allerdings ist der Vorteil dieser Methode, dass der richtige Client verwendet wird, wenn sich Ihre Datenbank in anderen Umgebungen unterscheidet.

40
Steve Weet

benutzen 

SQLite> .tables

dadurch erhalten Sie die Liste aller in der ausgewählten Datenbank vorhandenen Tabellen

@@, um die Konsole zu aktivieren 

SQLite> Rails dbconsole

@@ um Tabellen anzuzeigen 

SQLite>.tables

@@, um alle Zeilen in einer Tabelle anzuzeigen 

SQLite> select * from posts
8
Tarun Gupta

Es gibt eine großartige Anwendung zum Durchsuchen von sqlite3-Datenbanken. SQLite-Datenbankbrowser .

Sie haben erwähnt, dass Sie Aptana Studio verwenden. Ich habe mein RoR-Lernen auch mit diesem IDE begonnen, aber später habe ich Sublime Text entdeckt und wollte nie etwas anderes verwenden, da ich Ihnen raten sollte, es auszuprobieren.

Prost

6
Dmitry Matveev

Sie können online auf Ihre Datenbank zugreifen, wenn Sie activeadmin verwenden.

Fügen Sie einfach den gem activeadmin-sqlpage hinzu:

gem 'activeadmin-sqlpage'

Und erstellen Sie eine Activeadmin-Seite:

# file app/admin/sql.rb
ActiveAdmin::SqlPage::register

Starten Sie Ihren Server neu. Gehen Sie dann zum Admin-Panel und navigieren Sie im Menü SQL. Geben Sie einen beliebigen SQL-Befehl ein und drücken Sie die Ctrl+Enter- oder Submit-Taste.

0
oklas

Wenn Sie die RubyMine-IDE verwenden, können Sie von dort auf die sqlite-Datenquelle zugreifen. Sie können über die GUI Abfragen ausführen oder Daten in der Datenbank bearbeiten.

0
Ievgen

Öffnen Sie das Terminal und geben Sie diesen Befehl ein. Dadurch wird eine Rails-Konsole geöffnet, um die Datenbank abzufragen.

Rails c

Um eine Liste aller Modelle abzurufen, können Sie den folgenden Befehl verwenden

ActiveRecord::Base.connection.tables

beispiel: ["schema_migrations", "ar_internal_metadata", "categories", "Artikel"]

Aus der Liste der Modelle können Sie erste, letzte oder alle Datensätze abrufen. 

Category.all
0
supritshah1289

Um Daten auf DB anzuzeigen, habe ich einen SQLite-Client namens DB-Browser für SQLite verwendet, hier ist der Link

Es gibt auch eine Linux-Version dieser App. Es sollte eine Datenbankdatei mit der Erweiterung sqlite im Verzeichnis db der App geben. Wählen Sie im DB-Browser die Option "Datenbank öffnen" und wählen Sie diese Datei aus. Anschließend sollten Sie in der Lage sein, die Daten anzuzeigen.

0
gsumk