rails 3, postgreSQL base de données n'existe pas"
OK, je suis en train de construire ma première rails 3.0 application et que vous voulez tester le serveur postgreSQL en tant que production sur ma machine de développement (qui est en cours d'exécution 10.6). Lorsque vous créez une nouvelle application et rake db:migrate il crée sqlite de la db pour les trois environnements. Cool. Maintenant, je veux apprendre à vous déplacer à la production et à l'utilisation de postgres. J'ai utilisé homebrew installer postgres, installé le pg (env ARCHFLAGS="-arch x86_64" gem install pg)
et postgres-pr gems
.
J'ai couru râteau db:migrate
dans l'espoir que, comme avec sqlite3 il sera automatiquement créer mon serveur de production depuis que j'ai mis à jour ma base de données.yml (voir ci-dessous).
OK, dans mon application un dossier, j'ai redémarrer le serveur à l'aide de ' rails s --environment=production
" et il écope en disant qu'il ne trouve pas ma base de données de production.
De sorte que toutes les recherches sur google pour "rails 3 postgres installer" m'a fait beaucoup de chemin, mais il vous semble que je manque quelque chose, parce que rails est de ne pas en créer de nouvelles pg base de données.
postgres est en cours d'exécution tel que déterminé par le ps.
createdb -Omysuperusername -Eutf8 vitae_production
createdb -Omysuperusername -Eutf8 /Users/sam/apps/vitae/db/vitae_production
Mais ce répertoire n'a pas cette base de données, donc je suis en manque de quelque chose. Que suis-je en dominant?
c'est ma base de données.yml extrait de:
production:
adapter: postgresql
host: localhost
database: db/vitae_production
pool: 5
timeout: 5000
username: mysuperusername
password:
OriginalL'auteur sam452 | 2011-12-13
Vous devez vous connecter pour publier un commentaire.
Il ya un couple de choses à faire ici. Tout d'abord, vous semblez être un mélange de l'SQLite et PostgreSQL format pour la
database:
paramètre dans votredatabase.yml
. Avec SQLite, vous spécifiez le chemin relatif vers le fichier de base de données SQLite avec quelque chose comme:mais avec PostgreSQL, vous spécifiez le nom de base de données avec quelque chose comme ceci:
Puis, une fois
database.yml
est de l'installation, vous auriez créer la base de données de l'utilisateur (si nécessaire) à partir de l'intérieur depsql
:et puis laissez Rails de créer la base de données:
Alors vous devriez être en mesure d'exécuter les opérations de migration pour créer vos premiers tableaux et vous allez loin.
Vous voulez probablement pour lire la
créer un rôle
de la documentation pour vous assurer d'obtenir les bonnes options. Vous avez probablement envie de travailler dans l'environnement de développement plutôt qu'à la production, donc j'ai changé les noms et YAML pour refléter le fait que la production est pour le déploiement et la je ne pense pas que vous êtes le déploiement de rien pour l'instant.OriginalL'auteur mu is too short
Im'not familier avec les rails, mais vous pouvez créer votre base de données en tant que super-utilisateur postgres et accorder des privilèges, en supposant que dans votre distribution linux la postgres super-utilisateur postgres:
puis dans postgres accorder des privilèges d'un autre utilisateur
ensuite votre fichier de configuration devrait ressembler à ceci:
OriginalL'auteur Francisco Valdez