Skip to content

Commit

Permalink
Merge pull request #213 from spookyUnknownUser/patch-1
Browse files Browse the repository at this point in the history
Add sentry example to patterns
  • Loading branch information
bittner committed Dec 9, 2018
2 parents efea222 + 6bc3102 commit aa7864f
Showing 1 changed file with 41 additions and 6 deletions.
47 changes: 41 additions & 6 deletions docs/patterns.rst
Original file line number Diff line number Diff line change
Expand Up @@ -156,17 +156,52 @@ settings setup is already done.
In fact you can easily do something unrelated to settings, like
connecting to a database::

from configurations import Configuration
from configurations import Configuration

class Prod(Configuration):
class Prod(Configuration):
# ...

@classmethod
def post_setup(cls):
import mango
mango.connect('enterprise')
This is also good for things like `Sentry
<https://sentry.io/for/django/>`_. Which require some initialization
to work, but, which you maybe don't want activated on a dev config.

Intuitively you might want to add this kind of thing like
any other setting::

class Prod(Base):
# ...

@classmethod
def post_setup(cls):
import mango
mango.connect('enterprise')
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"

sentry_sdk.init("your dsn", integrations=[DjangoIntegration()])

But this will still activate sentry even when you're running a Dev
configuration. What you should do, is put this in the ``post_setup``
function. That way sentry will only ever
run when Prod is the selected configuration::

class Prod(Base):
# ...

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"

@classmethod
def post_setup(cls):
"""
Sentry initialization
"""
super(Prod, cls).post_setup()
sentry_sdk.init(
dsn=os.environ.get("your dsn"), integrations=[DjangoIntegration()]
)
.. warning::

You could do the same by overriding the ``__init__`` method of your
Expand Down

0 comments on commit aa7864f

Please sign in to comment.