18 Stimmen

Wie erstelle ich einen postgresql-Benutzer mit fabric

Ich möchte einen Datenbankbenutzer für mein Setup-Skript fabric erstellen, aber createuser hat ein interaktives Passwort eingegeben und scheint fabric nicht zu mögen.

35voto

robhudson Punkte 2640

Um die Antwort mit einem Stoffbeispiel zu erweitern...

# In fabfile.py
def create_database():
    """Creates role and database"""
    db_user = get_user()  # define these
    db_pass = get_pass()
    db_name = get_db_name()
    sudo('psql -c "CREATE USER %s WITH NOCREATEDB NOCREATEUSER " \
         "ENCRYPTED PASSWORD E\'%s\'"' % (db_user, db_pass), user='postgres')
    sudo('psql -c "CREATE DATABASE %s WITH OWNER %s"' % (
         db_name, db_user), user='postgres')

2 Stimmen

Upwote. Aber meinten Sie wirklich Tisch in db_table = get_table() ? Sieht aus, als ob Sie einen Datenbanknamen meinten.

8voto

Frank Heikens Punkte 105033

Verwenden Sie einfach einfaches SQL, um einen neuen Benutzer zu erstellen:

CREATE ROLE user_name WITH ENCRYPTED PASSWORD 'your password';

0 Stimmen

Wie kann ich dieses SQL in einem Einzeiler an Postgres senden?

0 Stimmen

Verbinden Sie sich mit dem psql-Client und senden Sie die Abfrage. postgresql.org/docs/8.4/interactive/app-psql.html

1voto

user805981 Punkte 8779

Dies ist wahrscheinlich von einigem Nutzen, ohne dass Sie Ihre eigenen Module schreiben müssen, oder Sie können es als Referenz verwenden.

from fabtools import require

require.postgres.create_db ???

https://fabtools.readthedocs.org/en/0.19.0/api/require/postgres.html?highlight=postgres#module-fabtools.require.postgres

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X