Create a gist now

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Another shot at this problem ..
class DisableMigrations(object):
def __contains__(self, item):
return True
def __getitem__(self, item):
return "notmigrations"
MIGRATION_MODULES = DisableMigrations()
@rchrd2

This comment has been minimized.

Show comment
Hide comment
@rchrd2

rchrd2 Dec 11, 2014

This worked for me, and it is more simple than other solutions I came accross.

rchrd2 commented Dec 11, 2014

This worked for me, and it is more simple than other solutions I came accross.

@danxshap

This comment has been minimized.

Show comment
Hide comment
@danxshap

danxshap Dec 15, 2014

Thank you for this!

Thank you for this!

@rikva

This comment has been minimized.

Show comment
Hide comment
@rikva

rikva Dec 17, 2014

Perfect. Thanks!

rikva commented Dec 17, 2014

Perfect. Thanks!

@chrisbarmonde

This comment has been minimized.

Show comment
Hide comment
@chrisbarmonde

chrisbarmonde Jan 15, 2015

You are a patron saint of testing.

You are a patron saint of testing.

@runekaagaard

This comment has been minimized.

Show comment
Hide comment
@runekaagaard

runekaagaard Jan 23, 2015

One word: Ahhhhhhhhh

One word: Ahhhhhhhhh

@jordij

This comment has been minimized.

Show comment
Hide comment

jordij commented Feb 4, 2015

boss!

@maximiliano

This comment has been minimized.

Show comment
Hide comment
@maximiliano

maximiliano Feb 19, 2015

Worked better for me, thanks!

Worked better for me, thanks!

@LegoStormtroopr

This comment has been minimized.

Show comment
Hide comment

+1 love it.

@LeMeteore

This comment has been minimized.

Show comment
Hide comment
@LeMeteore

LeMeteore Mar 4, 2015

Thanks a lot, +10000

Thanks a lot, +10000

@troygrosfield

This comment has been minimized.

Show comment
Hide comment
@troygrosfield

troygrosfield Apr 19, 2015

Just so everyone can support the publicly release app by @henriquebastos that includes this snippet:

Should rename the app to "headache reliever". Thanks guys! 👍

Just so everyone can support the publicly release app by @henriquebastos that includes this snippet:

Should rename the app to "headache reliever". Thanks guys! 👍

@emanuelcds

This comment has been minimized.

Show comment
Hide comment
@emanuelcds

emanuelcds May 7, 2015

Is there a way to use it with django-nose?

Is there a way to use it with django-nose?

@NotSqrt

This comment has been minimized.

Show comment
Hide comment
@NotSqrt

NotSqrt Jul 7, 2015

Glad I could help 😃

Owner

NotSqrt commented Jul 7, 2015

Glad I could help 😃

@adrienemery

This comment has been minimized.

Show comment
Hide comment
@adrienemery

adrienemery Jul 22, 2015

Has anyone used this with django-nose?

Has anyone used this with django-nose?

@flaugher

This comment has been minimized.

Show comment
Hide comment
@flaugher

flaugher Sep 20, 2015

Could someone please explain exactly how you use this snippet when running your tests? Thank you.

Could someone please explain exactly how you use this snippet when running your tests? Thank you.

@chrisv2

This comment has been minimized.

Show comment
Hide comment
@chrisv2

chrisv2 Jan 23, 2016

@flaugher: create a settings_test.py next to your regular settings.py:

import * from settings
# snippet content goes here

Then run your tests with settings_test instead of regular settings:

manage.py test --settings mysite.settings_test [test spec]

chrisv2 commented Jan 23, 2016

@flaugher: create a settings_test.py next to your regular settings.py:

import * from settings
# snippet content goes here

Then run your tests with settings_test instead of regular settings:

manage.py test --settings mysite.settings_test [test spec]
@nicholasserra

This comment has been minimized.

Show comment
Hide comment

Thanks!

@jamescw

This comment has been minimized.

Show comment
Hide comment
@jamescw

jamescw Feb 25, 2016

This is a great tool, but I use the hstore field on some models and the recommend way to install the hstore extension is via a migration: https://docs.djangoproject.com/es/1.9/ref/contrib/postgres/fields/#hstorefield

Any idea how I can run only one migration or run some custom SQL to install the extension?

jamescw commented Feb 25, 2016

This is a great tool, but I use the hstore field on some models and the recommend way to install the hstore extension is via a migration: https://docs.djangoproject.com/es/1.9/ref/contrib/postgres/fields/#hstorefield

Any idea how I can run only one migration or run some custom SQL to install the extension?

@roblinton

This comment has been minimized.

Show comment
Hide comment
@roblinton

roblinton Mar 1, 2016

@jamescw,

Based on the same source as this app, I use something like this in my settings:

RUN_MODE = sys.argv[1] if len(sys.argv) > 1 else None

if RUN_MODE == 'test':
    class DisableMigrations(dict):
        except_apps = {'app_to_run_migrations_for'}
        def __contains__(self, item):
            return item not in self.except_apps
        def __getitem__(self, item):
            return super(DisableMigrations, self).__getitem__(item) if item in self.except_apps else None

    MIGRATION_MODULES = DisableMigrations()

@jamescw,

Based on the same source as this app, I use something like this in my settings:

RUN_MODE = sys.argv[1] if len(sys.argv) > 1 else None

if RUN_MODE == 'test':
    class DisableMigrations(dict):
        except_apps = {'app_to_run_migrations_for'}
        def __contains__(self, item):
            return item not in self.except_apps
        def __getitem__(self, item):
            return super(DisableMigrations, self).__getitem__(item) if item in self.except_apps else None

    MIGRATION_MODULES = DisableMigrations()
@Remiz

This comment has been minimized.

Show comment
Hide comment
@Remiz

Remiz Aug 3, 2016

Not sure if someone else has the issue, but when I tried this snipped on my project that contains Cartridge, during the table creation it complains that one of the ManyToMany table already exists... Does anyone else had an issue with that?

Remiz commented Aug 3, 2016

Not sure if someone else has the issue, but when I tried this snipped on my project that contains Cartridge, during the table creation it complains that one of the ManyToMany table already exists... Does anyone else had an issue with that?

@raprasad

This comment has been minimized.

Show comment
Hide comment
@raprasad

raprasad Aug 12, 2016

Thanks. Used this snippet with another scenario where there was need to re-create "unmanaged" database tables during tests:

https://gist.github.com/raprasad/f292f94657728de45d1614a741928308

Thanks. Used this snippet with another scenario where there was need to re-create "unmanaged" database tables during tests:

https://gist.github.com/raprasad/f292f94657728de45d1614a741928308

@cjw296

This comment has been minimized.

Show comment
Hide comment
@cjw296

cjw296 Oct 7, 2016

So, how do you use this pattern when you want to test migrations as part of your test suite?

cjw296 commented Oct 7, 2016

So, how do you use this pattern when you want to test migrations as part of your test suite?

@renzon

This comment has been minimized.

Show comment
Hide comment
@renzon

renzon Jun 7, 2017

For those who use pytest-django, it already supports commands to define db behaviour on tests:

http://pytest-django.readthedocs.io/en/latest/database.html

@cjw296

You can have a stage env with a different pytest.ini where you test migrations.

renzon commented Jun 7, 2017

For those who use pytest-django, it already supports commands to define db behaviour on tests:

http://pytest-django.readthedocs.io/en/latest/database.html

@cjw296

You can have a stage env with a different pytest.ini where you test migrations.

@tclancy

This comment has been minimized.

Show comment
Hide comment
@tclancy

tclancy Oct 27, 2017

Looks like you need to alter this slightly on Django 1.11:

def __getitem__(self, item):
        return None

tclancy commented Oct 27, 2017

Looks like you need to alter this slightly on Django 1.11:

def __getitem__(self, item):
        return None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment