This django Migration Operation can be used to transfer a fields default value to the database scheme.
Project description
Django Add Default Value
========================
Django Migration Operation that can be used to transfer a field's default value
to the database scheme.
[![PyPi](https://img.shields.io/pypi/v/django-add-default-value.svg?branch=master)](https://pypi.python.org/pypi/django-add-default-value/)
[![License](https://img.shields.io/github/license/3yourmind/django-add-default-value.svg)](./LICENSE)
[![Contributing](https://img.shields.io/badge/PR-welcome-green.svg)](https://github.com/3YOURMIND/django-add-default-value/pulls)
[![3yourminD-Careers](https://img.shields.io/badge/3YOURMIND-Hiring-brightgreen.svg)](https://www.3yourmind.com/career)
[![Stars](https://img.shields.io/github/stars/3YOURMIND/django-add-default-value.svg?style=social&label=Stars)](https://github.com/3YOURMIND/django-add-default-value/stargazers)
Dependencies
------------
* MySQL (or compatible)
* PostgreSQL
* Microsoft SQL Server
Installation
------------
`pip install django-add-default-value`
You can then use ``AddDefaultValue`` in your migration file to transfer the default
values to your database. Afterwards, it's just the usual ``./manage.py migrate``.
Usage
-----
Add this manually to a autogenerated Migration, that adds a new field::
AddDefaultValue(
model_name='my_model',
name='my_field',
value='my_default'
)
### Example
Given the following migration::
operations = [
migrations.AddField(
field=models.CharField(default='my_default', max_length=255),
model_name='my_model',
name='my_field',
),
]
Modify the migration to add a default value::
+from django_add_default_value import AddDefaultValue
+
operations = [
migrations.AddField(
field=models.CharField(default='my_default', max_length=255),
model_name='my_model',
name='my_field',
),
+ AddDefaultValue(
+ model_name='my_model',
+ name='my_field',
+ value='my_default'
+ )
]
If you check ``python manage.py sqlmigrate [app name] [migration]``,
you will see that the default value now gets set.
Contributing
------------
First of all, thank you very much for contributing to this project. Please base
your work on the ``master`` branch and target ``master`` in your pull request.
There are a few packages needed on the host system. For ubuntu the following
commands will install these
```text
apt-get install freetds-dev unixodbc-dev tdsodbc
```
Then add the following text to `/etc/odbcinst.ini`:
```ini
[FreeTDS]
Description=FreeTDS unixODBC Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
```
To succesfully use the `dbshell` management command (very useful for debugging),
the client binaries for the respective database engines are needed.
Then install [pipenv](https://pipenv.readthedocs.io/en/latest/install/#installing-pipenv).
Edit the `Pipfile` to select your Django version and the accompanying MS-SQL
driver. Make sure you don't commit this change in any pull request - we always
set it to the oldest supported version.
Once you've updated the Pipfile, run `pipenv install --python 3 --dev`. You
should now have a working development environment as a virtualenv. To access it,
run `pipenv shell` or prefix commands with `pipenv run`. For more information
see the [pipenv documentation](https://pipenv.readthedocs.io/en/latest/basics/).
### Testing
Copy the relevant sample settings file in `test_project` to the file without
`.sample` in it. Adjust the values to match your environment (or match your
environment to the values).
You should now be able to run the tests using `tox`. Select your environment
when needed, using the `-e` command line flag. See
[Tox's excellent documentation](https://preview.tinyurl.com/y3faq6ab).
Roadmap
-------
- 0.1: Better and maintainable packaging
- 0.3: Tests work with tox. Supported platforms / versions frozen
- 0.5: Solid tests integrated with Travis or similar CI pipeline
- 0.9: Final API changes preparing for 1.0
- 1.0: API freeze
License
-------
``django-add-default-value`` is released under the Apache 2.0 License.
========================
Django Migration Operation that can be used to transfer a field's default value
to the database scheme.
[![PyPi](https://img.shields.io/pypi/v/django-add-default-value.svg?branch=master)](https://pypi.python.org/pypi/django-add-default-value/)
[![License](https://img.shields.io/github/license/3yourmind/django-add-default-value.svg)](./LICENSE)
[![Contributing](https://img.shields.io/badge/PR-welcome-green.svg)](https://github.com/3YOURMIND/django-add-default-value/pulls)
[![3yourminD-Careers](https://img.shields.io/badge/3YOURMIND-Hiring-brightgreen.svg)](https://www.3yourmind.com/career)
[![Stars](https://img.shields.io/github/stars/3YOURMIND/django-add-default-value.svg?style=social&label=Stars)](https://github.com/3YOURMIND/django-add-default-value/stargazers)
Dependencies
------------
* MySQL (or compatible)
* PostgreSQL
* Microsoft SQL Server
Installation
------------
`pip install django-add-default-value`
You can then use ``AddDefaultValue`` in your migration file to transfer the default
values to your database. Afterwards, it's just the usual ``./manage.py migrate``.
Usage
-----
Add this manually to a autogenerated Migration, that adds a new field::
AddDefaultValue(
model_name='my_model',
name='my_field',
value='my_default'
)
### Example
Given the following migration::
operations = [
migrations.AddField(
field=models.CharField(default='my_default', max_length=255),
model_name='my_model',
name='my_field',
),
]
Modify the migration to add a default value::
+from django_add_default_value import AddDefaultValue
+
operations = [
migrations.AddField(
field=models.CharField(default='my_default', max_length=255),
model_name='my_model',
name='my_field',
),
+ AddDefaultValue(
+ model_name='my_model',
+ name='my_field',
+ value='my_default'
+ )
]
If you check ``python manage.py sqlmigrate [app name] [migration]``,
you will see that the default value now gets set.
Contributing
------------
First of all, thank you very much for contributing to this project. Please base
your work on the ``master`` branch and target ``master`` in your pull request.
There are a few packages needed on the host system. For ubuntu the following
commands will install these
```text
apt-get install freetds-dev unixodbc-dev tdsodbc
```
Then add the following text to `/etc/odbcinst.ini`:
```ini
[FreeTDS]
Description=FreeTDS unixODBC Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
```
To succesfully use the `dbshell` management command (very useful for debugging),
the client binaries for the respective database engines are needed.
Then install [pipenv](https://pipenv.readthedocs.io/en/latest/install/#installing-pipenv).
Edit the `Pipfile` to select your Django version and the accompanying MS-SQL
driver. Make sure you don't commit this change in any pull request - we always
set it to the oldest supported version.
Once you've updated the Pipfile, run `pipenv install --python 3 --dev`. You
should now have a working development environment as a virtualenv. To access it,
run `pipenv shell` or prefix commands with `pipenv run`. For more information
see the [pipenv documentation](https://pipenv.readthedocs.io/en/latest/basics/).
### Testing
Copy the relevant sample settings file in `test_project` to the file without
`.sample` in it. Adjust the values to match your environment (or match your
environment to the values).
You should now be able to run the tests using `tox`. Select your environment
when needed, using the `-e` command line flag. See
[Tox's excellent documentation](https://preview.tinyurl.com/y3faq6ab).
Roadmap
-------
- 0.1: Better and maintainable packaging
- 0.3: Tests work with tox. Supported platforms / versions frozen
- 0.5: Solid tests integrated with Travis or similar CI pipeline
- 0.9: Final API changes preparing for 1.0
- 1.0: API freeze
License
-------
``django-add-default-value`` is released under the Apache 2.0 License.
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
Close
Hashes for django-add-default-value-0.3.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7e647787046caa90b76a08f7748e0abc26d1c3f79f814e64305679b93d3a35a |
|
MD5 | 55865f2d26deccc41cb268cf9d8c0a84 |
|
BLAKE2b-256 | f0e83945a2dcedebd66e18c5ad1bcc8d7febe469f8e4f015d7bc294405586b58 |
Close
Hashes for django_add_default_value-0.3.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc6da2e00a8dcf9e80f2ed27c354f6c466c55fa2e6772731fa4ce7ec37b9c2e1 |
|
MD5 | 0d213408efb83c9d579b5da5aad8cd0b |
|
BLAKE2b-256 | adb8ad38c995e8afdf625ae22590ca84564e13b404394e17fba9e1bd62ad057b |