Ich habe derzeit Ruby on Rails über RVM in Ubuntu 12.04 installiert. Die Standarddatenbank ist in SQLite3 eingerichtet, aber ich möchte zu PostgreSQL wechseln, um auf Heroku zu pushen. Wie kann ich das erreichen?
73
Ich habe derzeit Ruby on Rails über RVM in Ubuntu 12.04 installiert. Die Standarddatenbank ist in SQLite3 eingerichtet, aber ich möchte zu PostgreSQL wechseln, um auf Heroku zu pushen. Wie kann ich das erreichen?
Hier sind die Schritte, die ich befolgt habe:
Installieren Sie PostgreSQL und das Entwicklungspaket
$ sudo apt-get install postgresql
$ sudo apt-get install libpq-dev
Richten Sie einen Benutzer ein, der mit meinem Ubuntu-Login identisch ist
$ sudo su postgres -c psql
postgres=# CREATE ROLE <username> SUPERUSER LOGIN;
postgres=# \q
Gemfile ändern
# Remove gem 'sqlite3'
gem 'pg'
database.yml
Im App-Verzeichnis ändern
development:
adapter: postgresql
encoding: unicode
database: appname_development
pool: 5
timeout: 5000
username: <username>
password:
test:
adapter: postgresql
encoding: unicode
database: appname_test
pool: 5
timeout: 5000
username: <username>
password:
Führen Sie die Bundle-Installation aus
$ bundle install
Erstellen Sie Datenbanken und Migrationen
$ rake db:create:all
$ rake db:migrate
Hier sind die Quellen, aus denen ich geholfen habe:
http://mrfrosti.com/2011/11/postgresql-for-ruby-on-rails-on-ubuntu/
http://railscasts.com/episodes/342-migrating-to -postgresql
https://devcenter.heroku.com/articles/local-postgresql
CREATE ROLE
:ALTER ROLE <username> WITH PASSWORD '<yourpassword>';
database.yml
CREATE ROLE <username> SUPERUSER LOGIN PASSWORD '<yourpassword>';
CREATE ROLE Alex SUPERUSER LOGIN;
. In der database.yml habe ich auch meinen Benutzernamen als festgelegtAlex
und den gleichen Fehler wie jmontross erhalten. Dann habe ich es geändertalex
und alles hat funktioniert. Ich musste auch rennenrake db:migrate RAILS_ENV=test
. Beachten Sie auch, dass diese Methode die Datenbank von sqlite3 nach postgres migriert, jedoch nicht die tatsächlichen Daten in der Datenbank migriert. Informationen zum Migrieren finden Sie in der in der Antwort genannten Railscast.sudo apt-get install postgresql
wird die neueste verfügbare Version installiert.Führen Sie für alle
Ubuntu 13.10
Benutzer, die diesen Thread öffnen, die folgenden Schritte aus, um ihn zu installierenpostresql
:sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' > /etc/apt/sources.list.d/pgdg.list" wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get install postgresql-common -t saucy sudo apt-get install postgresql-9.2 libpq-dev
da es kein offizielles Postgres-Repository für gibt
Ubuntu 13.10
.Erstellen Sie dann den Benutzer wie
Nick
erklärt (Sie können auch ein Passwort angeben):sudo su postgres -c psql postgres=# CREATE ROLE gotqn SUPERUSER LOGIN; postgres=# \password gotqn postgres=# \q
Hinweis: Ersetzen Sie das
gotqn
oben Gesagte durch daswhoami
Ergebnis:Der einfachste Weg, um Ihre Rails-Anwendung zu erstellen, besteht darin, anzugeben, dass Sie
postgresql
Folgendes verwenden:rails new Demo -d postgresql
Der obige Code fügt den
pg
Edelstein automatisch in Ihre Datei einGemFile
und erstellt die entsprechendedatabase.yml
Datei:development: adapter: postgresql encoding: unicode database: Demo_development pool: 5 username: gotqn password: mypass
Hinweis: Sie müssen den Benutzernamen ändern und das richtige Kennwort angeben, wenn Sie ein solches festgelegt haben.
Führen Sie
rake db:create
dann den Rails-Server aus und starten Sie ihn.quelle
sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ präzise-pgdg main'> /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key hinzufügen -
sudo apt-get update
sudo apt-get install postgresql-common
sudo apt-get install postgresql-9.3 libpq-dev
quelle