/ / Pokúšate sa prechádzať z SQLite do PostgreSQL - ruby-on-rail, databáza, sqlite, postgresql, heroku

Snažím sa prepnúť z SQLite na PostgreSQL - ruby-on-rail, databáza, sqlite, postgresql, heroku

Používal som SQLite vo vývoji a testovaní aPostgreSQL v produkcii na Heroku. Chcel by som nahradiť SQLite s PostgreSQL. Programujem v prostredí Cloud9 (Rails 4). Nemám žiadne údaje, ktoré by som mohol potenciálne stratiť.

Čo som spravil:

Najprv som upravil databázu.yml:

default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: app_production

potom:

  • V Gemfile som sa presťahoval gem "pg" z výrobného prostredia len do všetkých prostredí a odstránené gem "sqlite3"
  • Bežal som bundle install.
  • Bežal som sudo service postgresql start
  • Bežal som sudo sudo -u postgres psql
  • A vstúpil create database "app_development";
  • vstúpil q

aktualizácia: Pridal som nasledujúce dodatočné kroky:

  • Vytvoril som nového používateľa v CREATE USER my_username SUPERUSER PASSWORD "my_password";
  • V databáze. Som pridala username a password
  • V databaze.yml som pridala host: myurl.c9.io
  • Zadal som v psql: GRANT ALL ON DATABASE app_development to my_username

beh sudo sudo -u postgres psql a potom list vyrába:

      Name          |  Owner   | Encoding  | Collate | Ctype |   Access privileges
postgres           | postgres | SQL_ASCII | C       | C     |
template0          | postgres | SQL_ASCII | C       | C     | =c/postgres          +
|          |           |         |       | postgres=CTc/postgres
template1          | postgres | SQL_ASCII | C       | C     | =c/postgres          +
|          |           |         |       | postgres=CTc/postgres
app_development    | postgres | SQL_ASCII | C       | C     |

Nevidím tu svoje používateľské meno ako vlastník aplikácie app_development ...

Chyba: beh rake db:migrate časové oneskorenie, vyhlásenie PG::ConnectionBad: could not connect to server: Connection timed out Is the server running on host "myurl.c9.io" (ip address) and accepting TCP/IP connections on port 5432?.

Prečo môže byť spojenie s PostgreSQL neúspešné?

odpovede:

1 pre odpoveď č. 1

Nahradiť obsah súboru database.yml do:

default: &default
adapter: postgresql
host: localhost
username: yourusername
password: yourpassword
timeout: 5000
port: 5432
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: app_production

Pretože používate Heroku, môžete nechať sekciu výroby tak, ako je