J'utilise PostgreSQL 8.4 et j'ai des fichiers * .sql à importer dans une base de données. Comment puis-je le faire?
en ligne de commande, accédez d'abord au répertoire où psql est présent, puis écrivez des commandes comme ceci:
psql [database name] [username]
puis appuyez sur Entrée. psql demande le mot de passe, entrez le mot de passe de l'utilisateur:
puis écrire
> \i [full path and file name with extension]
puis appuyez sur Entrée insertion terminée.
A partir de la ligne de commande:
psql -f 1.sql
psql -f 2.sql
À partir de l'invite psql
:
\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 la manipulation des données). Si vous avez bash
Shell (GNU/Linux, Mac OS X, Cygwin) , 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 de l'application psql
(merci Frank): http://www.postgresql.org/docs/current/static/app-psql.html
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_bdd: Quelle base de données devez-vous insérer vos données de fichier dans.
chemin_fichier: Chemin absolu du fichier à travers lequel vous souhaitez effectuer l'importation.
Host_name: Le nom de l'hôte. Aux fins du développement, il s’agit principalement de localhost
.
En entrant cette commande dans la console, vous serez invité à entrer votre mot de passe.
Faites attention avec "/" et "\". Même sous Windows, la commande devrait être sous la forme:
\i c:/1.sql
Toujours préféré en utilisant un fichier de service de connexion (lookup/google 'fichier de service de connexion psql')
Alors simplement:
psql service={yourservicename} < {myfile.sql}
Où yourservicename
est un nom de section du fichier de service.