L'installation de Postgres sur windows pour une utilisation avec Ruby-on-Rails
Actuellement je reçois l'erreur suivante:
PGError (FATAL: le mot de passe d'authentification a échoué pour l'utilisateur "postgres" ):
lorsque mon application tente d'accéder à la base de données.
J'ai voulu tester mes appels SQL contre postgres que mon application des pauses régulières lorsque poussé jusqu'à la production sur Heroku en raison des exigences plus strictes de postgres (je pense que c'est probablement une bonne chose) sur sqlite 3. J'ai donc une demande similaire pour ce pour un pas de date de tutoriel pour l'installation de postgres pour une utilisation avec ruby on rails sur windows (7) s'il vous plaît. Je pensais que ça serait rapide de 20 minutes de téléchargement et d'installation, mais 2 et un peu heures plus tard et je ne pense pas que je suis très proche encore. Jusqu'à présent, j'ai:
Téléchargé et installé Postgres Version 8.4.8-1 à partir d'ici
Mis mes variables d'environnement telles que le Chemin d'accès (pour l'Utilisateur) est: C:\Ruby192\bin;C:\Program Files (x86)\PostgreSQL\8.4\bin
Gemfile:
gem 'pg', '0.11.0' # instead of gem 'sqlite3', '1.3.3'
couru bundle install
pour mon application rails, apparemment avec succès, mais n'ai pas trouvé de moyen simple pour valider l'installation encore.
définir la base de données.yml comme suggéré ici à:
development:
adapter: postgresql
database: db/development
username: postgres
password: secret
host: localhost
encoding: UTF8
pool: 5
timeout: 5000
Je sais que j'ai besoin de créer un nom d'utilisateur et le mot de passe de Postgres, peut-être aussi de démarrer le serveur postgres, connectez-vous à elle(?) et de le mettre dans mon adresse IP locale, je vais connecter sur le dans un des fichiers de configuration quelque part et ensuite modifier l'un de l'autre .fichiers de conf dans 'C:\Program Files (x86)\PostgreSQL\8.4\data", etc...
Je pense Rails m'a fait doux, je suis plus à penser à des choses ou est-il en fait assez difficile à définir, et je viens de revenir à Sqlite3, pour qui il existe aussi incroyablement utile SQLite Manager, le plugin Firefox?
Je suis toujours à la recherche d'un guide pour les débutants à l'installation et l'utilisation Postgres pour les rails mais jusqu'à présent, ont été confondus par la plupart des choses que je regarde /essayé suivants cette, cette, cette, cette, cette(pour Snow Leopard), cette(linux).
Tous les pointeurs serait très apprécié. Merci!
James
- J'ai simplement installé Postgresql à partir de la postgrespro.com/windows , tous les autres paramètres - la façon la plus commune.
Vous devez vous connecter pour publier un commentaire.
Une approche à l'installation de Postgres sur windows 7 pour l'utiliser comme une base de données PostgreSQL pour rails 3 (3.0.7) du projet.
Préambule (vous pouvez sauter cette bits)
Donc la première chose à souligner est que Postgres n'est pas seulement une extension de fichier différente de .sqlite3, c'est tout un mécanisme pour la gestion de vos bases de données. Comme telle, elle a un modèle client/serveur, des que vous aurez besoin de configurer à la fois d'utiliser Postgresql comme base de données pour votre application rails.
La Motivation de passer par l'intermédiaire d'une douleur considérable de Postgres d'installation par rapport à près sans effort sqlite de l'installation: si vous déployez pour Heroku, ils sont actuellement à l'aide de Postgres si certains de vos appels SQL qui sont beaux sur sqlite3 va casser lorsqu'il est utilisé avec Postgres. Il est beaucoup plus facile à déboguer postgres localement plutôt que quand il est sur Heroku serveurs.
Donc j'ai fait les choses suivantes:
(Disclaimer: j'ai peut-être oublié d'inclure certaines des choses que j'ai fait... il m'a fallu plus de 48 heures sur et en dehors de la douleur pour le faire fonctionner... si les conseils suivants ne fonctionne pas pour vous, alors l'énorme (2300 pages!!) mais très complet Postgres documentation devrait aider. Je vous recommande de télécharger ce de toute façon si vous êtes sérieux au sujet de l'utilisation de Postgres comme il a beaucoup de matériel que j'ai seulement commencé à comprendre l'importance de l'.)
(Deuxième avertissement: j'ai presque certainement brisées 20 sensée Postgres des lignes directrices et des exposés des trous de sécurité dans la base de données Postgres, tout en le faisant. S'il ya des choses évidentes, une expérience utilisateur Postgres n'est pas d'accord avec, merci d'éditer mon post.)
.Étape 1. Télécharger et installer PostgreSQL v9.0.4-1 de ici parce que ici dit seulement 9.0.x serait pris en charge sur windows 7. J'ai gardé toutes les options par défaut et juste utilisé le "secret" comme le mot de passe lorsque vous y êtes invité par le Postgres installateur pour un (de nouveau pas entièrement sûr de ce que les conséquences de partage de l'information sur internet est... le saurons bientôt, j'en suis sûr). Vous aurez besoin de ce mot de passe à l'étape 3.
.Étape 2. Modifier les variables d'environnement telles que le Chemin d'accès (système, pas de l'utilisateur (je ne sais pas si c'est important ou pas)) est:
C:\Program Files\PostgreSQL\9.0\bin
(n.b. Je suis sur une version 64 bits de windows donc il n'est pas installé pour 32-bit 'C:\Program Files (x86)\PostgreS...')
N'oubliez pas de changer les droits d'accès au dossier PostgreSQL\9.0 et supprimer tout par défaut en lecture seule les droits sur le dossier ou le contenu.
(Vous pouvez aussi avoir besoin de redémarrer votre ordinateur pour prendre effet - merci @Gavin -bien que non probable).
.Étape 3. Test Postgres installation en essayant de créer une nouvelle base de données:
En ligne de commande:
createdb -U postgres mydb_as_postgres
.Vous devriez être invité à entrer le mot de passe maintenant, si vous n'êtes pas peut-être que vous avez besoin pour commencer d'abord le serveur (je ne me souviens pas si je devais le faire ou pas). Le moyen le plus facile est par le biais de pgAdmin III, qui doivent être "pgAdmin3.exe" dans un dossier quelque part, comme
C:\Program Files\PostgreSQL\9.0\bin
. Une fois que vous avez commencé à pgAdmin III, il devrait y avoir un panneau sur la gauche, appelé 'explorateur d'Objets'. En cela, il doit y avoir un arbre avec:Groupes de serveurs > Serveurs > PostgreSQL 9.0 (localhost:5432)
Clic droit sur " PostgreSQL 9.0 (localhost:5432)' et cliquez sur 'Connect'.
La
createdb -U postgres mydb_as_postgres
commande doit créer un nouveau databse appelé "mydb_as_postgres' qui vous permet de vérifier en tirant jusqu'à pgAdmin III et en double-cliquant sur 'PostgreSQL 9.0 (localhost:5432)'. En vertu de cela, il devrait être:Databases (2)
qui devrait liste de 2 bases de données appelémydb_as_postgres
etpostgres
Je l'ai appelé
_as_postgres
parce que le-U postgres
partie de la commande indique Postgres pour créer la base de données avec l'utilisateur postgres comme c'est le propriétaire, qui vous avez besoin de spécifier lorsque vous n'êtes pas connecté en tant qu'utilisateur postgres. J'ai tous mes fichiers stockés comme "AJames' utilisateur mais si vous êtes de la même et vous voulez garder le développement de votre application lorsque vous êtes connecté en tant qu'un autre utilisateur, vous devez créer un Postgres "rôle" pour que l'utilisateur (voir l'étape 4)..Étape 4. Par pgAdmin III. Cliquez-droit sur la Connexion des Rôles (qui pour moi est):
Navigateur d'objet > Serveur de Groupes > Serveurs > PostgreSQL 9.0 (localhost:5432) > Login Rôles
Cliquez-droit sur la Connexion des Rôles et sélectionnez " Nouveau Rôle de Connexion...'
au nom du Rôle, de le mettre dans votre système d'exploitation, nom d'utilisateur, qui est pour moi AJames,
et remplissez votre mot de passe sous le Rôle des Privilèges "de l'onglet, j'ai coché toutes les cases, mais une expérience utilisateur postgres serait probablement fortement recommandé de vérifier uniquement la" hérite des droits du parent rôles "et le" peut créer des objets de base de données", Mais je ne suis pas un utilisateur expérimenté et vous voulez juste pour déboguer les Rails appels SQL dans Postgres donc j'ai aussi vérifié le 'super Utilisateur' et 'Pouvez créer des rôles", juste au cas où.
.Étape 5. Vous devriez maintenant être en mesure de créer une nouvelle base de données sans être connecté en tant qu'utilisateur postgres. Essayez de taper:
createdb mydb_as_user
Espérons que cela devrait fonctionner pour vous.
.Étape 6. Ok, donc vous avez une.sqlite3 fichier dans votre dossier de rails db/' annuaire. Au départ, j'étais aller à définir le prochain test que la conversion de ce de sqlite3 pour psql.
Je ne pouvais pas obtenir que cela fonctionne bien mais j'ai laissé ma tente ici que la solution que j'ai utilisée nécessaire d'avoir les données dans une application Rails sur Heroku.com (voir au lieu de la solution à partir de l'étape 7 et suivantes). Pour ceux qui n'ont qu'un local de l'application et pas de données dans Heroku, ils ne peuvent pas utiliser la même approche, donc ils pourraient avoir besoin d'explorer quelque chose comme ceci:
x6.1 tout d'Abord, test "psql" par essayer une commande à partir de votre ligne de commande comme:
psql mydb_as_user
ceci devrait afficher quelque chose comme ci-dessous (après que vous avez tapé votre mot de passe):
x6.2 essayez d'entrer:
CREATE TABLE users_table (id integer, "name" text);
Il doit afficher:
Si vous vérifiez dans pgAdmin III, vous devriez voir le tableau sous:
Navigateur d'objet > Serveur de Groupes > Serveurs > PostgreSQL 9.0 (localhost:5432) > Bases de données > mydb_as_user > Schémas > administration > Tables > users_table >
x6.3 Bon, à côté de tenter la conversion. Téléchargé sqlite-shell binaires précompilés pour windows.
x6.4 Créer un nouveau répertoire, j'ai utilisé "C:\temp" et de mettre le sqlite3.exe et votre développement.sqlite3 fichiers.
x6.5 Utilisez les commandes suivantes (qui sont de ici) pour vider le développement.base de données sqlite3 dans Postgres.
sqlite3 development .dump | psql development2
vous pouvez obtenir une erreur, comme:
psql: FATAL: database "development2" does not exist
x6.6 je suis donc allé dans pgAdmin III et fait un développement 2 base de données, essayé la commande de nouveau et a obtenu:
Comme je l'ai dit, je ne pouvais pas le faire fonctionner. Je suis sûr qu'il ya un moyen de contourner cette erreur, mais j'ai pensé à une façon différente et donc j'ai plutôt utilisé cette solution (qui nécessite un Heroku compte de vos données et la conversion de sqlite3 pour psql en utilisant les Robinets gem (je crois):
.Étape 7. dans pgAdmin III, j'ai créé une autre base de données. Sous l'onglet propriétés, j'nom de jeu: le "développement", propriétaire: 'AJames' (remplacer par votre propre nom d'utilisateur Windows). Et sous l'onglet privilèges, jeu de rôle: "public" et coché l'option ALL (la pensée, cela réinitialise à décochée donc je ne suis pas sûr que ce soit nécessaire).
.Étape 8. ajouter
gem 'pg', '0.11.0'
pour votre bijou de fichier. Vous voudrez aussi de supprimer l':
gem 'sqlite3'
à ce stade trop.
.Étape 9. définir la base de données.yml comme suggéré ici à:
Si vous travaillez sur un projet open source et ne voulez pas que votre mot de passe pour être disponible au public, ont un coup d'oeil à certaines des réponses à En toute sécurité en fournissant le mot de passe de la base de données dans une application Rails.
.Étape 10. à partir de la ligne de commande dans votre application rails de la racine du répertoire d'exécution:
rake db:migrate
Cela va créer le nouveau schéma et toutes les tables dans la base de données Postgres.
.Étape 11. exécuter
heroku db:pull
depuis la ligne de commande (à nouveau à partir du répertoire racine de votre application rails) pour tirer l'ensemble de vos données vers le bas et dans votre vide nouvelle base de données Postgres. Je pense qu'à ce point de votre robinet gem sera de faire ce travail pour vous..Étape 12. Heureusement qu'il y a pas d'étape de 12! ...et il doit maintenant travailler pour vous. Heureux RoR PostgreSQL de débogage! Merci d'éditer, ou laissez-moi savoir, si il y a des erreurs dans ce.
Aussi, voici une liste de choses qui pourraient être intéressantes/utiles:
pourquoi vous en avez besoin, comment les changer etc.
comprendre ce pg_hba.conf est sur et le second lien que
Reno a donné ci-dessus, en vertu de la 'l'Aide de pgAdmin III GUI' est utile pour
test pour voir si postgres est en fait de travail, avant d'essayer de s'adapter à
avec Rails (c'est à dire essayer de créer une base de données et de mettre une table et
des données).
à partir de la page 58, 'I. tutoriel". Puis sur la page pdf 431(!) il y a
"Chapitre 17. L'installation du serveur et de l'opération " que j'ai aussi trouvé utile.
Aucun de vos liens semblait être (sans doute) plus utile de la documentation - la officiel postgresql docs. Récemment, j'ai configurer un Linux Mint boîte avec postgresql et django à l'aide d'une combinaison de ces documents et ces, si ceux-ci sont spécifiques à Linux.
J'avais des soucis plus sur la validation de l'postgresql côté des choses, de moins en moins sur les rails. C'est-à-dire, votre question devrait être "Comment puis-je configurer et tester un serveur postgresql sur un Windows 7 zone", plus que vous avez besoin de savoir comment obtenir verrouillé dans les rails.
Edit:
Peut-être cette pourrait aussi être utiliser pour vous - officiel de postgresql wiki détaillées guides d'installation.
Bonne chance!
la réponse de l'AJP est le bon avec juste un petit re-config.
La ligne
ne fonctionne pas pour moi.
Je dois changer de
- Je l'utiliser pour ruby on rails pour la commande
et
de travail