Add a short description here!
Project description
django-project-backup
Django project backup application.
(This is alpha software and is under heavy development)
Setup
Add the following lines to settings.py
# django
INSTALLED_APPS += [
'django_project_backup'
]
# django_project_backup settings
DJANGO_PROJECT_BACKUP_SHAPES = 'manual' # 'manual' | 'realtime'
DJANGO_PROJECT_BACKUP_EXCLUDED_MODELS = [
'sessions',
'admin'
] # default
# filesystem backup strategy
PUBLIC_ROOT = os.path.join(ROOT_DIR ,'public')
PRIVATE_ROOT = os.path.join(ROOT_DIR ,'private')
DJANGO_PROJECT_BACKUP_DUMPDATA_JSON_FILENAME = 'dump_all.json' # default
DJANGO_PROJECT_BACKUP_BACKUP_FILE_PREFIX = 'backup' # default
DJANGO_PROJECT_BACKUP_DESTINATION_FOLDER = os.path.join(ROOT_DIR ,'backups')
# couchdb backup strategy
SERIALIZATION_MODULES = {
'couchdb_datastore': 'django_project_backup.utils.couchdb.serializers'
}
COUCHDB_DATASTORE_HOST = 'http://127.0.0.1:5984'
COUCHDB_DATASTORE_USER = 'admin'
COUCHDB_DATASTORE_PASSWORD = 'couchdb'
COUCHDB_DATASTORE_DATABASE_NAME = 'django_project_backup'
# django-filer
# store files as payload
FILER_DUMP_PAYLOAD = True
Usage
Filesystem
-
Backup DB
$ python manage.py dpb_filesystem_dumpdata
-
Backup assets
$ python manage.py dpb_filesystem_assets_backup
Couchdb
-
Backup all
$ python manage.py dpb_couchdb_dumpdata
-
Restore all
$ python manage.py dpb_couchdb_loaddata
Sandbox
Docker
Dependencies
Installation
Run the following commands:
git clone https://bitbucket.org/pai/django-project-backup.git
cd django-project-backup
docker-compose up --build -d
docker-compose run app /venv/bin/python manage.py load_initial_data
docker-compose up
The demo site will now be accessible at http://localhost:8000/ and the Wagtail admin interface at http://localhost:8000/admin/.
Log into the admin with the credentials admin / admin
.
Important: This docker-compose.yml
is configured for local testing only, and is not intended for production use.
Debugging
To tail the logs from the Docker containers in realtime, run:
docker-compose logs -f
Setup with Virtualenv
You can run the demo locally without setting up Docker and simply use Virtualenv, which is the recommended installation approach for Django itself.
Dependencies
- Python 3.6, 3.7 or 3.8
- Virtualenv
- VirtualenvWrapper (optional)
Installation
With PIP and virtualenvwrapper installed, run:
mkvirtualenv django_project_backup
python --version
Confirm that this is showing a compatible version of Python 3.x. If not, and you have multiple versions of Python installed on your system, you may need to specify the appropriate version when creating the virtualenv:
deactivate
rmvirtualenv django_project_backup
mkvirtualenv django_project_backup --python=python3.7
python --version
Now we're ready to set up the bakery demo project itself:
cd ~/dev [or your preferred dev directory]
git clone https://bitbucket.org/pai/django-project-backup.git
cd django_project_backup/sandbox/
pip install -r requirements/base.txt
Next, we'll set up our local environment variables. We use django-dotenv
to help with this. It reads environment variables located in a file name .env
in the top level directory of the project.
The only variable we need to start is DJANGO_SETTINGS_MODULE
:
$ cp backend/settings/local.py.example backend/settings/local.py
$ echo "DJANGO_SETTINGS_MODULE=backend.settings.local" > .env
To set up your database and load initial data, run the following commands:
./manage.py migrate
./manage.py load_initial_data
./manage.py runserver
Log into the admin with the credentials admin / admin
.
Note
This project has been set up using PyScaffold 3.2.3. For details and usage information on PyScaffold see https://pyscaffold.org/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-project-backup-0.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1abf3d0239052e53a861a37246b5b0fc918e56fec0cf0e8f41601a5ca6c157e0 |
|
MD5 | 98ba7c8ef70e99cc1d48ff563a6ba505 |
|
BLAKE2b-256 | ca043e4ae75a6c17ccb07626fe195c22fad89a529bd106989306cca2891c0fa4 |
Hashes for django_project_backup-0.1.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 772448d08d753a62d197eab9922f651e5f1721a23ee03061ecc5753b95a7b9ff |
|
MD5 | 613c2be64e63f9bfed688493e94d6faf |
|
BLAKE2b-256 | ae82122a36817dec5e6af81958d27b304a3d39008c7d0a632ee8de44e6f29cd6 |