Ejemplo n.º 1
0
def pg_backup(database_name, suffix=None):
    """
    Backup a postgresql database
    """
    from django.conf import settings
    from django_productline.context import PRODUCT_CONTEXT
    db_host = settings.DATABASES['default']['HOST']

    import datetime
    suffix = suffix or datetime.datetime.now().isoformat().replace(
        ':', '-').replace('.', '-')
    backup_name = database_name + '_' + suffix
    backup_dir = '{ape_root_dir}/_backup/{backup_name}'.format(
        ape_root_dir=PRODUCT_CONTEXT.APE_ROOT_DIR, backup_name=backup_name)
    subprocess.check_call(['mkdir', '-p', backup_dir])
    target_sql = backup_dir + '/dump.sql'
    subprocess.check_call([
        'pg_dump', '--no-owner', '--host', db_host, '--username', 'postgres',
        '-f', target_sql, database_name
    ])
    print('*** database dumped to: ' + backup_dir)
    subprocess.check_call([
        'tar', '-cvf',
        '{backup_dir}/media.tar.gz'.format(backup_dir=backup_dir), '-C',
        PRODUCT_CONTEXT.DATA_DIR, '.'
    ])
    tasks.export_context(os.path.join(backup_dir, 'context.zip'))
    print('*** __data__ compressed to: ' + backup_dir)
    return backup_name
Ejemplo n.º 2
0
def export_data(target_path):
    """
    Exports the data of an application - media files plus database,
    :param: target_path:
    :return: a zip archive
    """
    tasks.export_data_dir(target_path)
    tasks.export_database(target_path)
    tasks.export_context(target_path)
    return target_path
Ejemplo n.º 3
0
def export_data(target_path):
    """
    Exports the data of an application - media files plus database,
    :param: target_path:
    :return: a zip archive
    """
    tasks.export_data_dir(target_path)
    tasks.export_database(target_path)
    tasks.export_context(target_path)
    return target_path