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="*****@*****.**")
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")
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)
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")
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")
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()
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}, ) )
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)
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")
def copy_db(source: str, dest: str) -> None: from sh import createdb createdb(*_maint_conn_args(), f"--template={source}", dest)
def __enter__(self): sh.createdb(self.dbname, "-T", self.orig, _out="log/create-copytmpdb.txt")