Rails 4 - comment utiliser sqlite3 dans le développement et PostgreSQL dans la production de w/Heroku
Je suis en train de déployer sur Heroku, mais ne peut pas parce que le défaut sqlite3 serveur est toujours en place.
Détecté gem sqlite3 qui n'est pas pris en charge sur Heroku.
https://devcenter.heroku.com/articles/sqlite3
Dans un autre tutoriel avec des Rails 3.2.13 j'ai été en mesure d'utiliser sqlite3 que les dev db et Postgres comme la base de données de production. Le Gemfile est différent dans les Rails 4, mais j'ai modifié pour avoir ceci:
group :development do
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
end
group :production do
gem 'pg'
end
J'ai ensuite changé ma base de données.fichier yml, de sorte que la section de production ressemblait à ceci:
production:
adapter: postgresql
database: my_production_database
pool: 5
timeout: 5000
J'ai ensuite couru bundle install
et rake db:create
et rake db:migrate
mais je suis encore incapable de pousser à Heroku. J'ai donc essayé rake db:drop
ainsi que rake db:create
et rake db:migrate
mais reçois toujours le même message d'erreur.
Suis-je raté quelque chose? De quoi dois-je faire pour m'assurer que je suis Postgres que ma base de données de production et suis en mesure d'utiliser Heroku?
Merci pour l'astuce! Au départ, j'avais été à l'aide de différents parce que c'est comment il a été mis en place sur un tutoriel, j'ai été suivant. Je suppose que vous ne pouvez pas faire confiance à tout ce qui est publié comme un tutoriel!
OriginalL'auteur sixty4bit | 2014-01-14
Vous devez vous connecter pour publier un commentaire.
Ne pas le faire. Vous allez juste courir dans des problèmes sur la route. Utiliser la même base de données de production et de développement. Il y a beaucoup de ressources disponibles dans la documentation de l'interrupteur de sqlite à la base de données postgres.
Prendre le temps et le commutateur.
Jetez un oeil à cette Rails en Fonte.
http://railscasts.com/episodes/342-migrating-to-postgresql?view=asciicast
Il est l'un des, si pas le plus grand défaut de certains tutoriels là-bas. Il "travaille" pour le tutoriel, mais une fois que vous faites quelque chose au-delà de cela, vous serez en difficulté. Si vous êtes followingMichael Hartl Rails Tutoriel, il laisse comme un exercice: ruby.railstutorial.org/chapters/...
La réponse à ma question initiale était que je n'étais pas commettre git avant de les déployer sur Heroku, mais je suis ce marquage comme la réponse puisque ça semble être les "meilleures pratiques" de répondre à la problématique sous-jacente.
OriginalL'auteur ChrisBarthol
Essayez d'utiliser ceci pour votre base de données de production
Vous pouvez laissez le nom d'utilisateur et un mot de passe vide
Alright. dans votre console, bundle exec rake actifs:précompiler. Ensuite, exécutez la commande git add public/actifs -f. puis les valider vos modifications et essayez à nouveau. devcenter.heroku.com/articles/rails-asset-pipeline
Également ajouter cette gem 'rails_12factor', '0.0.2" à votre groupe de production
Je crois que la section de la production et de la base de données.yml est ignoré sur Heroku -- il substitue les valeurs de sa propre basé sur l'utilisateur, mot de passe et base de données que vous créez dans le cadre de l'application.
J'ai essayé bundle exec rake actifs:précompiler ainsi que l'ajout de rails_12factor à mon Gemfile mais ça ne marche toujours pas. Crois que je vais faire un nouveau post
OriginalL'auteur Justin Licata