Files

43 lines
1.3 KiB
Python

import re
with open('config/settings.py', 'r') as f:
content = f.read()
# Replace CHANNEL_LAYERS
old_channels = """CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [env('REDIS_URL', default='redis://localhost:6379/0')],
},
},
}"""
new_channels = """REDIS_URL = env('REDIS_URL', default=None)
if REDIS_URL:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [REDIS_URL],
},
},
}
else:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels.layers.InMemoryChannelLayer"
}
}"""
content = content.replace(old_channels, new_channels)
# Replace Celery defaults so they don't crash if REDIS_URL is None
old_celery1 = "CELERY_BROKER_URL = env('REDIS_URL', default='redis://localhost:6379/0')"
new_celery1 = "CELERY_BROKER_URL = env('REDIS_URL', default='memory://')"
old_celery2 = "CELERY_RESULT_BACKEND = env('REDIS_URL', default='redis://localhost:6379/0')"
new_celery2 = "CELERY_RESULT_BACKEND = env('REDIS_URL', default='cache+memory://')"
content = content.replace(old_celery1, new_celery1)
content = content.replace(old_celery2, new_celery2)
with open('config/settings.py', 'w') as f:
f.write(content)