J'utilise PostgreSQL 8.4, et j'ai quelques fichiers *.sql à importer dans une base de données. Comment puis-je le faire ?
Réponses
Trop de publicités?Depuis la ligne de commande :
psql -f 1.sql
psql -f 2.sql
De la psql
rapide :
\i 1.sql
\i 2.sql
Notez que vous devrez peut-être importer les fichiers dans un ordre spécifique (par exemple : définition des données avant manipulation des données). Si vous avez bash
shell (GNU/Linux, Mac OS X, Cygwin) et les fichiers peuvent être importés dans l'ordre alphabétique vous pouvez utiliser cette commande :
for f in *.sql ; do psql -f $f ; done
Voici la documentation du psql
(merci, Frank) : http://www.postgresql.org/docs/current/static/app-psql.html
Dans la ligne de commande atteignez d'abord le répertoire où psql est présent puis écrivez des commandes comme ceci :
psql [database name] [username]
et ensuite appuyez sur entrée psql demande le mot de passe donnez le mot de passe de l'utilisateur :
puis écrire
> \i [full path and file name with extension]
puis appuyez sur entrée insertion faite.
Eh bien, le chemin le plus court que je connaisse est le suivant :
psql -U {user_name} -d {database_name} -f {file_path} -h {host_name}
nom_de_base_de_données : Dans quelle base de données devez-vous insérer les données de votre fichier.
chemin_fichier : Chemin absolu du fichier par lequel vous voulez effectuer l'importation.
nom_hôte : Le nom de l'hôte. À des fins de développement, il s'agit le plus souvent de localhost
.
En entrant cette commande dans la console, vous serez invité à entrer votre mot de passe.
J'ai toujours préféré utiliser un dossier de service de connexion (lookup/google 'psql connection service file')
Alors, tout simplement :
psql service={yourservicename} < {myfile.sql}
Où yourservicename
est un nom de section du fichier de service.