Skip to content

Commit

Permalink
starting heroku work
Browse files Browse the repository at this point in the history
  • Loading branch information
raprasad committed Aug 15, 2016
1 parent db86dde commit d4c5e09
Show file tree
Hide file tree
Showing 13 changed files with 116 additions and 27 deletions.
40 changes: 40 additions & 0 deletions DEV_NOTES_HEROKU.md
@@ -0,0 +1,40 @@
## deployment

+-- miniverse
+-- settings
+-- heroku_dev.py
+-- wsgi.py
+-- urls_heroku_dev.py (not yet created)
+-- Procfile

# checklist

- [ ] python runtime
- do we want to go live with 3.x?
- [ ] static files
- [ ] database
- [ ] database routing
- [ ] secret key


# config vars

- https://devcenter.heroku.com/articles/config-vars#add-ons-and-config-vars

## Set python version

- reference: https://devcenter.heroku.com/articles/python-support#supported-python-runtimes

- location: ```+-- runtime.txt```

```
cat runtime.txt
python-2.7.11
```


## set django vars

- secret key
- create a key: https://gist.github.com/joshsee/8c495c2da9b423d42e8d
- set the key: ```heroku config:set SECRET_KEY=[key from above]```
1 change: 1 addition & 0 deletions Procfile
@@ -0,0 +1 @@
web: gunicorn miniverse.wsgi --log-file - --limit-request-line 8190
5 changes: 3 additions & 2 deletions dv_apps/dvobjects/tests.py
Expand Up @@ -3,7 +3,7 @@

class DvObjectsTestCase(TestCase):

fixtures = ['test_2016_0812.json']
#fixtures = ['test_2016_0812.json']

def setUp(self):
pass
Expand All @@ -15,5 +15,6 @@ def test_01_todo(self):
"""Test to see if db created"""

cnt = DvObject.objects.all().count()
self.assertEqual(cnt, 2510)
self.assertEqual(cnt, 0)
#self.assertEqual(cnt, 2510)
print 'num DvObjects', cnt
20 changes: 19 additions & 1 deletion dv_apps/metrics/tests.py
@@ -1,3 +1,21 @@
from django.test import TestCase
from dv_apps.metrics.stats_util_dataverses import StatsMakerDataverses

# Create your tests here.
class DvObjectsTestCase(TestCase):

#fixtures = ['test_2016_0812.json']

def setUp(self):
pass


def test_01_todo(self):
"""Test to see if db created"""

stats_maker = StatsMakerDataverses()
stats_result = stats_maker.get_dataverse_counts_by_month()

print 'stats_result.result_data', stats_result.result_data

self.assertEqual(stats_result.has_error(), False)
self.assertEqual(stats_result.result_data, [])
22 changes: 12 additions & 10 deletions miniverse/settings/base.py
Expand Up @@ -10,12 +10,12 @@
https://docs.djangoproject.com/en/1.8/ref/settings/
"""

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
# Build paths inside the project like this: join(PROJECT_ROOT, ...)
import os
from os.path import abspath, dirname
from os.path import join
BASE_DIR = dirname(dirname(dirname(abspath(__file__))))

PROJECT_ROOT = dirname(dirname(dirname(abspath(__file__))))

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
Expand All @@ -36,11 +36,13 @@
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'django.contrib.staticfiles',
'django.contrib.humanize',

# Existing DV tables
'dv_apps.terms_of_use',

'dv_apps.actionlog',
'dv_apps.dataverse_auth',
'dv_apps.dvobjects',
Expand All @@ -55,7 +57,7 @@
'dv_apps.installations',

# Experiments/Add-ons
'dv_apps.data_previewer',
#'dv_apps.data_previewer',
'dv_apps.metrics',
)

Expand All @@ -78,8 +80,8 @@
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
join(BASE_DIR, 'templates'),
join(BASE_DIR, 'templates', 'recipes'),
join(PROJECT_ROOT, 'templates'),
join(PROJECT_ROOT, 'templates', 'recipes'),
],
'APP_DIRS': True,
'OPTIONS': {
Expand All @@ -102,7 +104,7 @@
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'NAME': os.path.join(PROJECT_ROOT, 'db.sqlite3'),
}
}

Expand All @@ -127,15 +129,15 @@
STATIC_URL = '/static/'

# Static file sources
STATICFILES_DIRS = [join(BASE_DIR, 'static')]
STATICFILES_DIRS = [join(PROJECT_ROOT, 'static')]
#print 'STATICFILES_DIRS', STATICFILES_DIRS

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
join(BASE_DIR, 'templates'),
join(BASE_DIR, 'templates', 'miniverse'),
join(PROJECT_ROOT, 'templates'),
join(PROJECT_ROOT, 'templates', 'miniverse'),
],
'APP_DIRS': True,
'OPTIONS': {
Expand All @@ -154,7 +156,7 @@
},
]

MEDIA_ROOT = join(BASE_DIR,"media")
MEDIA_ROOT = join(PROJECT_ROOT,"media")

MEDIA_URL = '/media/'

Expand Down
37 changes: 32 additions & 5 deletions miniverse/settings/heroku_dev.py
@@ -1,14 +1,28 @@
from __future__ import absolute_import
import json
import sys
from os import makedirs
from os.path import join, normpath, isdir, isfile
#import sys
from os.path import join#, normpath, isdir, isfile
import dj_database_url

from .base import *

HEROKU_DB_CONFIG = dj_database_url.config()
# Set the secret key
SECRET_KEY = os.environ['SECRET_KEY']

# Cookie name
SESSION_COOKIE_NAME = 'dv_metrics_dev'


#INTERNAL_IPS = () # Heroku IP

ALLOWED_HOSTS = ['54.235.72.96',]


## Database settings via Heroku url
HEROKU_DB_CONFIG = dj_database_url.config(conn_max_age=500)

DATABASES['default'].update(HEROKU_DB_CONFIG)

"""
DATABASES = {
'django_contrib_db': HEROKU_DB_CONFIG,
'default': {
Expand All @@ -19,3 +33,16 @@
'HOST': 'localhost'
}
}
"""

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
STATIC_ROOT = join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = '/static/'

# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
join(PROJECT_ROOT, 'static'),
)

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
4 changes: 2 additions & 2 deletions miniverse/settings/local.py
Expand Up @@ -8,7 +8,7 @@

SECRET_KEY = 'make-a-secret-key'

LOCAL_SETUP_DIR = join(BASE_DIR, 'test_setup')
LOCAL_SETUP_DIR = join(PROJECT_ROOT, 'test_setup')
if not isdir(LOCAL_SETUP_DIR):
makedirs(LOCAL_SETUP_DIR)

Expand Down Expand Up @@ -62,6 +62,6 @@
########## END TOOLBAR CONFIGURATION


MEDIA_ROOT = join(BASE_DIR,"media")
MEDIA_ROOT = join(PROJECT_ROOT,"media")

MEDIA_URL = '/media/'
9 changes: 3 additions & 6 deletions miniverse/settings/local_with_routing.py
Expand Up @@ -8,7 +8,7 @@

SECRET_KEY = 'make-a-secret-key'

LOCAL_SETUP_DIR = join(BASE_DIR, 'test_setup')
LOCAL_SETUP_DIR = join(PROJECT_ROOT, 'test_setup')
if not isdir(LOCAL_SETUP_DIR):
makedirs(LOCAL_SETUP_DIR)

Expand All @@ -17,11 +17,8 @@
DATABASES = {

'django_contrib_db': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'metrics_internal', # dvn_thedata dvndb_demo
'USER': 'rp', # dv_readonly, postgres
'PASSWORD': '123',
'HOST': 'localhost',
'ENGINE': 'django.db.backends.sqlite3',
'NAME': join(LOCAL_SETUP_DIR, 'metrics_auth.db3'),
'TEST': {
'MIRROR': 'default',
},
Expand Down
2 changes: 1 addition & 1 deletion miniverse/wsgi.py
Expand Up @@ -12,7 +12,7 @@
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "miniverse.settings")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "miniverse.settings.heroku_dev")

application = get_wsgi_application()
application = DjangoWhiteNoise(application)
1 change: 1 addition & 0 deletions requirements.txt
@@ -0,0 +1 @@
-r requirements/heroku.txt
1 change: 1 addition & 0 deletions requirements/heroku.txt
@@ -1,3 +1,4 @@
-r base.txt

gunicorn==19.6.0
dj-database-url==0.4.1
1 change: 1 addition & 0 deletions runtime.txt
@@ -0,0 +1 @@
python-2.7.11
Binary file modified test_setup/metrics_auth.db3
Binary file not shown.

0 comments on commit d4c5e09

Please sign in to comment.