Ejemplo n.º 1
0
def run():
    db_name = settings.DATABASES['default']['NAME']
    if "postgres" in settings.DATABASES['default']['ENGINE']:
        import psycopg2
        try:
            psycopg2.connect("dbname=%s" % db_name)
            print("Deleting DB ...", end="")
            sh.dropdb(db_name)
            print("Done")
        except psycopg2.OperationalError:
            pass
    else:
        if os.path.isfile(db_name):
            os.unlink(db_name)
    print("Done")
    print("Creating DB ...", end="")
    if "postgres" in settings.DATABASES['default']['ENGINE']:
        sh.createdb(db_name)
    print("Done")
    call_command("migrate")

    print("Create superuser")
    admin = User.objects.create_superuser(username="******",
                                          password="******",
                                          email="*****@*****.**")
Ejemplo n.º 2
0
    def reset_db(self):
        common_args = ['-h', settings.PG_HOST, '-U', settings.PG_USERNAME]
        print('Dropping postgres', self.settings['PG_DATABASE'])
        sh.dropdb(self.settings['PG_DATABASE'], *common_args, _ok_code=[0, 1])
        print('Creating postgres', self.settings['PG_DATABASE'])
        sh.createdb(self.settings['PG_DATABASE'], *common_args)

        # verify DB is accessible
        self.psql(c="SELECT 1")
Ejemplo n.º 3
0
def configure_db():
    if env.name == 'dev':
        from sh import createuser, createdb
        #todo untested
        createuser("-Upostgres -d -R -S %s" % PRJ_USER)
        createdb ("-Upostgres -O%s %s" % PRJ_USER, PRJ_DB)
    else:
        require.postgres.server()
        require.postgres.user(PRJ_USER, PRJ_PASS)
        require.postgres.database(PRJ_DB, PRJ_USER)
Ejemplo n.º 4
0
def initdb():
    environ['PGUSER'] = "******"

    click.echo("Creating user")
    psql("-c CREATE USER " + DB_USER + " WITH PASSWORD '" + DB_PASS + "';")

    click.echo("Creating databases")
    createdb("-Ogis", DB_NAME, encoding='utf-8')
    createdb("-Ogis", "maps", encoding='utf-8')

    click.echo("Creating extensions")
    psql("-d" + DB_NAME,
         "-c CREATE EXTENSION postgis; CREATE EXTENSION hstore;")
    psql("-dmaps", "-c CREATE EXTENSION postgis")
Ejemplo n.º 5
0
 def __enter__(self):
     printc("CREATE DB %s" % self.dbname, color="blue")
     sh.createdb(self.dbname, _out="log/create-tmpdb.txt")
     sh.psql(self.dbname,
             "-f",
             "backend/apps/serverboards/priv/repo/initial.sql",
             _out="log/create-tmpdb.txt")
     databaseurl = ("postgresql://*****:*****@localhost/%s" %
                    self.dbname)
     with envset(MIX_ENV="test", SERVERBOARDS_DATABASE_URL=databaseurl), \
             chdir("backend"):
         sh.mix("run",
                "apps/serverboards/priv/repo/test_seeds.exs",
                _out="../log/create-tmpdb.txt")
Ejemplo n.º 6
0
def resetdb():
    """Create the tables."""
    import annotator.models  # noqa

    click.echo('Resetting database...')

    query = '''
        SELECT pg_terminate_backend(pid)
        FROM pg_stat_activity
        WHERE datname = '{}'
    '''.format(db.engine.url.database)
    psql('--command', query)
    dropdb('--if-exists', db.engine.url.database)
    createdb(db.engine.url.database)
    _createtables()
Ejemplo n.º 7
0
def restore_database():
    """Restores the database via pg_restore."""
    from sh import psql, createdb
    from dispatch.config import DATABASE_HOSTNAME, DATABASE_PORT, DATABASE_CREDENTIALS

    username, password = str(DATABASE_CREDENTIALS).split(":")

    print(
        createdb(
            "-h",
            DATABASE_HOSTNAME,
            "-p",
            DATABASE_PORT,
            "-U",
            username,
            "dispatch",
            _env={"PGPASSWORD": password},
        )
    )
    print(
        psql(
            "-h",
            DATABASE_HOSTNAME,
            "-p",
            DATABASE_PORT,
            "-U",
            username,
            "-f",
            "dispatch-backup.dump",
            _env={"PGPASSWORD": password},
        )
    )
Ejemplo n.º 8
0
def restore_database(dbname: str, file: Path) -> None:
    from sh import createdb

    createdb(
        *_maint_conn_args(),
        # see odoo/odoo 3edd504f17a2fe435ccd8235037e96c11ba96c18 for rational
        "--template=template0",
        "--encoding=unicode",
        "--locale=C",
        dbname,
    )

    from sh import pg_restore

    with file.open("rb") as file:
        pg_restore(*_maint_conn_args(), f"--dbname={dbname}", _in=file)
Ejemplo n.º 9
0
def restore_database(dump_file):
    """Restores the database via pg_restore."""
    import sh
    from sh import psql, createdb
    from dispatch.config import (
        DATABASE_HOSTNAME,
        DATABASE_NAME,
        DATABASE_PORT,
        DATABASE_CREDENTIALS,
    )

    username, password = str(DATABASE_CREDENTIALS).split(":")
    username = "******"
    password = "******"

    try:
        print(
            createdb(
                "-h",
                DATABASE_HOSTNAME,
                "-p",
                DATABASE_PORT,
                "-U",
                username,
                DATABASE_NAME,
                _env={"PGPASSWORD": password},
            )
        )
    except sh.ErrorReturnCode_1:
        print("Database already exists.")

    print(
        psql(
            "-h",
            DATABASE_HOSTNAME,
            "-p",
            DATABASE_PORT,
            "-U",
            username,
            "-d",
            DATABASE_NAME,
            "-f",
            dump_file,
            _env={"PGPASSWORD": password},
        )
    )
    click.secho("Success.", fg="green")
Ejemplo n.º 10
0
def copy_db(source: str, dest: str) -> None:
    from sh import createdb

    createdb(*_maint_conn_args(), f"--template={source}", dest)
Ejemplo n.º 11
0
 def __enter__(self):
     sh.createdb(self.dbname,
                 "-T",
                 self.orig,
                 _out="log/create-copytmpdb.txt")