diff --git a/gracedb/translator.py b/gracedb/translator.py
index ac94fd9975928c37dfc82da8e415c3d6dd82f356..a7bd55da576aead418395c35a627de016fc1fa39 100644
--- a/gracedb/translator.py
+++ b/gracedb/translator.py
@@ -18,35 +18,6 @@ from glue.gracedb.utils import populate_inspiral_tables, \
                                populate_coinc_tables,    \
                                write_output_files
 
-# Importing this messes with other ligolw table actions.
-#from gracedb.ligolw.insert import insert_ligolw_tables
-import gracedb.ligolw
-
-def insert_ligolw_tables(xml_filename):
-    #insert_ligolw_tables(django.db.connection, xml_filename)
-    prog = os.path.dirname(gracedb.ligolw.__file__)
-    prog = os.path.join(prog, "insert.py")
-    e = dict(os.environ)
-    ppath = e.get("PYTHONPATH") or ""
-    ppath = ppath.split(':')
-    ppath = ppath + sys.path
-    e['PYTHONPATH'] = ':'.join(ppath)
-    p = Popen( (prog,
-                 settings.DATABASE_USER,
-                 settings.DATABASE_PASSWORD,
-                 settings.DATABASE_NAME,
-                 xml_filename),
-               stdout=PIPE, stderr=PIPE, env=e)
-    out = p.stdout.read()
-    err = p.stderr.read()
-    p.wait()
-    out += p.stdout.read()
-    if out.find("OK") != 0:
-        coinc_id = None
-    else:
-        coinc_id = out[2:].strip()
-    return coinc_id
-
 def handle_uploaded_data(event, datafilename,
                          log_filename='event.log',
                          coinc_table_filename='coinc.xml'):
@@ -137,7 +108,6 @@ def handle_uploaded_data(event, datafilename,
         event.likelihood = coinc_table[0].likelihood
 
         xml_filename = os.path.join(output_dir, coinc_table_filename)
-        event.coincEvent_id = insert_ligolw_tables(xml_filename)
 
         event.save()
 
@@ -189,7 +159,6 @@ def handle_uploaded_data(event, datafilename,
         event.likelihood = coinc_table[0].likelihood
 
         xml_filename = os.path.join(output_dir, coinc_table_filename)
-        event.coincEvent_id = insert_ligolw_tables(xml_filename)
 
         event.save()
 
@@ -233,7 +202,6 @@ def handle_uploaded_data(event, datafilename,
         event.likelihood = coinc_table[0].likelihood
 
         xml_filename = os.path.join(output_dir, coinc_table_filename)
-        event.coincEvent_id = insert_ligolw_tables(xml_filename)
 
         event.save()
     elif event.analysisType == 'CWB':
@@ -294,9 +262,60 @@ def val_or_dashes(val):
     return val
 
 class Translator(object):
-    pass
+    event_type = "Undefined"  # override
+
+    def getData(self):
+        # override
+        raise(NotImplemented)
+
+    def castData(self, data):
+        # convert ints to ints
+        for key in ['gpstime', 'likelihood']:
+            if data[key]:
+                data[key] = int(float(data[key]))
+
+        # convert floats to floats
+        for key in ['far']:
+            if data[key]:
+                data[key] = float(data[key])
+
+    def populateEvent(self, event):
+        data = self.getData()
+
+        event.gpstime = data.get('gpstime')
+        event.likelihood = data.get('likelihood')
+        event.instruments = data.get('instruments')
+        event.far = data.get('far')
+
+        event.save()
+
+    def logData(self):
+        data = self.getData()
+        logdata = []
+        logdata.append("Event Type: %s", self.event_type)
+        logdata.append("Time: %s" % data.get('gpstime', '---'))
+        logdata.append("Duration: %s" % data['rawdata'].get('duration',["---"])[0])
+        logdata.append("Frequency: %s" % data['rawdata'].get('frequency',["---"])[0])
+        logdata.append("Bandwidth: %s" % data['rawdata'].get('bandwidth',["---"])[0])
+        logdata.append("RA: %s" % data['rawdata'].get('phi',[None,None,"---"])[2])
+        logdata.append("Dec: %s" % data['rawdata'].get('theta',[None,None,"---"])[2])
+        logdata.append("Effective SNR: %s" % data['rawdata'].get('rho',["---"])[0])
+        logdata.append("IFOs: %s" % val_or_dashes(data.get('instruments')))
+        logdata.append("FAR: %s" % val_or_dashes(data.get('far')))
+        return "\n".join(logdata)
+
+    def writeLogfile(self, path):
+        data = self.logData()
+        if data:
+            f = open(path, 'w')
+            f.write(data)
+            f.close()
+        return True
+
+
 
 class CwbData(Translator):
+    event_type = "cWB"
     CWB_IFO_MAP = {
         '1' : 'L1',
         '2' : 'H1',
@@ -307,19 +326,21 @@ class CwbData(Translator):
         '7' : 'A1',
     }
 
-    def __init__(self, datafile):
-        print "Got datafile", datafile
+    def __init__(self, datafile, *args, **kwargs):
         self.datafile = datafile
         self.data = None
 
     def getData(self):
         if not self.data:
-            self.data = self._readData(self.datafile)
+            data = self.readData(self.datafile)
+            self.castData(data)
         return self.data
 
-    def _readData(self, datafile):
+    def readData(self, datafile):
+        needToClose = False
         if isinstance(datafile, str) or isinstance(datafile, unicode):
             datafile = open(datafile, "r")
+            needToClose = True
 
         # cWB data look like
         #
@@ -348,55 +369,12 @@ class CwbData(Translator):
         ifos.sort()
         data['instruments'] = ','.join(ifos)
 
-        self._castData(data)
+        if needToClose:
+            datafile.close()
 
+        self.data = data
         return data
 
-    def _castData(self, data):
-        # convert ints to ints
-        for key in ['gpstime', 'likelihood']:
-            if data[key]:
-                data[key] = int(float(data[key]))
-
-        # convert floats to floats
-        for key in ['far']:
-            if data[key]:
-                data[key] = float(data[key])
-
-
-    def populateEvent(self, event):
-        data = self.getData()
-
-        event.gpstime = data.get('gpstime')
-        event.likelihood = data.get('likelihood')
-        event.instruments = data.get('instruments')
-        event.far = data.get('far')
-
-        event.save()
-
-    def logData(self):
-        data = self.getData()
-        logdata = []
-        logdata.append("Event Type: cWB")
-        logdata.append("Time: %s" % data.get('gpstime', '---'))
-        logdata.append("Duration: %s" % data['rawdata'].get('duration',["---"])[0])
-        logdata.append("Frequency: %s" % data['rawdata'].get('frequency',["---"])[0])
-        logdata.append("Bandwidth: %s" % data['rawdata'].get('bandwidth',["---"])[0])
-        logdata.append("RA: %s" % data['rawdata'].get('phi',[None,None,"---"])[2])
-        logdata.append("Dec: %s" % data['rawdata'].get('theta',[None,None,"---"])[2])
-        logdata.append("Effective SNR: %s" % data['rawdata'].get('rho',["---"])[0])
-        logdata.append("IFOs: %s" % val_or_dashes(data.get('instruments')))
-        logdata.append("FAR: %s" % val_or_dashes(data.get('far')))
-        return "\n".join(logdata)
-
     def writeCoincFile(self, path):
         pass
 
-    def writeLogfile(self, path):
-        data = self.logData()
-        if data:
-            f = open(path, 'w')
-            f.write(data)
-            f.close()
-        return True
-
diff --git a/gracedb/views.py b/gracedb/views.py
index 4aac4948e85312a7ea290c72a5afa3980393f862..487cb53563cd3433cbaa4191a98f735a273caba5 100644
--- a/gracedb/views.py
+++ b/gracedb/views.py
@@ -459,7 +459,7 @@ def log(request):
 
 def ping(request):
     #ack = "(%s) " % Site.objects.get_current()
-    ack = "(%s) " % request.META['SERVER_NAME']
+    ack = "(%s/%s) " % (request.META['SERVER_NAME'], settings.CONFIG_NAME)
     ack += request.POST.get('ack', None) or request.GET.get('ack','ACK')
 
     from templatetags.timeutil import utc
diff --git a/ligolw/__init__.py b/ligolw/__init__.py
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/ligolw/insert.py b/ligolw/insert.py
deleted file mode 100755
index d065d7fe0ed6a7ebc3b769ff87ce02a8ee2e7e97..0000000000000000000000000000000000000000
--- a/ligolw/insert.py
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/env python
-
-#
-# preamble
-#
-
-import sys, os
-
-import StringIO
-
-import MySQLdb
-from MySQLdb import OperationalError
-
-import glue
-from glue.ligolw import ligolw
-from glue.ligolw import lsctables
-# FIXME:  remove the next line when this attribute is initialized properly
-# in lsctables.py
-lsctables.SnglInspiralTable.next_id = lsctables.SnglInspiralID(0)
-# FIXME:  remove the next line when SnglInspiralTable no longer has its own
-# custom version of this method
-lsctables.SnglInspiralTable.updateKeyMapping = lsctables.table.Table.updateKeyMapping
-from glue.ligolw import utils
-from glue.ligolw.utils.ligolw_add import reassign_ids as ligolw_reassign_ids
-# while importing dbtables, need before and after copies of the
-# LIGOLWContentHandler class
-class LIGOLWRAMContentHandler(ligolw.LIGOLWContentHandler):
-    startTable = ligolw.LIGOLWContentHandler.startTable
-    endTable = ligolw.LIGOLWContentHandler.endTable
-from glue.ligolw import dbtables
-class LIGOLWDBContentHandler(ligolw.LIGOLWContentHandler):
-    startTable = ligolw.LIGOLWContentHandler.startTable
-    endTable = ligolw.LIGOLWContentHandler.endTable
-
-dbtables.DBTable.maxrowid = lambda self: None
-
-#
-# initialize the next_id attributes of all the table classes
-#
-
-#------------------------------------------------------------------
-
-#from insert_nextid import next_id
-# included below.
-
-import MySQLdb
-from MySQLdb.constants import ER
-
-TABLE_NAME = "ligolwids"
-
-create_table_sql = "CREATE TABLE %s (tablename VARCHAR(30) PRIMARY KEY, nextid INTEGER)" % TABLE_NAME
-select_id_sql = "SELECT nextid FROM %s WHERE tablename = %%s" % TABLE_NAME
-insert_new_sql = "INSERT INTO %s (tablename, nextid) VALUES (%%s, 0)" % TABLE_NAME
-update_sql = "UPDATE %s SET nextid = nextid+1 WHERE tablename = %%s" % TABLE_NAME
-lock_sql = "LOCK TABLE %s WRITE" % TABLE_NAME
-unlock_sql = "UNLOCK TABLES"
-
-def create_id_table(connection):
-    connection.cursor().execute(create_table_sql)
-
-def db_get_next_id(connection, table_name, create_table=True, create_row=True):
-    cursor = connection.cursor()
-    try:
-        try:
-            cursor.execute(lock_sql)
-            cursor.execute(select_id_sql, [table_name])
-            next = cursor.fetchone()
-            if next is None:
-                cursor.execute(insert_new_sql, [table_name])
-                cursor.execute(select_id_sql, [table_name])
-                next = cursor.fetchone()
-            cursor.execute(update_sql, [table_name])
-        finally:
-            cursor.execute(unlock_sql)
-            cursor.close()
-    except MySQLdb.ProgrammingError, e:
-        if e.args[0] != ER.NO_SUCH_TABLE or not create_table:
-            raise
-        create_id_table(connection)
-        return db_get_next_id(connection, table_name, create_table=False)
-    return int(next[0])
-
-
-#------------------------------------------------------------------
-
-def initialize(connection):
-    for cls in lsctables.TableByName.values():
-        if cls.next_id is not None:
-            cls.get_next_id = lambda self: type(self.next_id)(db_get_next_id(connection, self.next_id.table_name))
-            classmethod(cls.get_next_id)
-
-def insert_ligolw_tables(connection, filename, verbose=False):
-
-    initialize(connection)
-    #
-    # parse .xml file into memory, reassign ids, write xml stream to in-ram
-    # buffer
-    #
-    xmldoc = ligolw_reassign_ids(
-        utils.load_filename(
-            filename,
-            gz = (filename or "stdin").endswith(".gz"),
-            verbose = verbose,
-            contenthandler = LIGOLWRAMContentHandler
-        ),
-        verbose = verbose
-    )
-
-    # <-- find coinc_event_id
-    coinc_table = glue.ligolw.table.get_table(
-            xmldoc,
-            glue.ligolw.lsctables.CoincTable.tableName)
-    coinc_id = coinc_table[0].coinc_event_id
-
-
-    buf = StringIO.StringIO()
-    utils.write_fileobj(xmldoc, buf)
-    buf.seek(0)
-    #
-    # re-parse xml stream from in-ram buffer to sqlite database
-    #
-    dbtables.DBTable_set_connection(connection)
-    xmldoc, digest = utils.load_fileobj(buf, contenthandler = LIGOLWDBContentHandler)
-    xmldoc.unlink()
-    dbtables.DBTable_set_connection(None)
-
-    return coinc_id
-
-if __name__ == "__main__":
-    import sys
-
-    user = sys.argv[1]
-    password = sys.argv[2]
-    db = sys.argv[3]
-    filename = sys.argv[4]
-
-    conn= MySQLdb.connect(user=user, passwd=password, db=db)
-
-    rv = insert_ligolw_tables(conn, filename)
-    print "OK", rv
diff --git a/ligolw/insert_nextid.py b/ligolw/insert_nextid.py
deleted file mode 100644
index 9e6d78965bc9ecce139c7b59c43e9c3c5ebaf19a..0000000000000000000000000000000000000000
--- a/ligolw/insert_nextid.py
+++ /dev/null
@@ -1,48 +0,0 @@
-import MySQLdb
-from MySQLdb.constants import ER
-
-conn = MySQLdb.connect(db='ligolw', user='root')
-
-TABLE_NAME = "ligolwids"
-
-create_table_sql = "CREATE TABLE %s (tablename VARCHAR(30) PRIMARY KEY, nextid INTEGER)" % TABLE_NAME
-select_id_sql = "SELECT nextid FROM %s WHERE tablename = %%s" % TABLE_NAME
-insert_new_sql = "INSERT INTO %s (tablename, nextid) VALUES (%%s, 0)" % TABLE_NAME
-update_sql = "UPDATE %s SET nextid = nextid+1 WHERE tablename = %%s" % TABLE_NAME
-lock_sql = "LOCK TABLE %s WRITE" % TABLE_NAME
-unlock_sql = "UNLOCK TABLES"
-
-def create_id_table(connection):
-    connection.cursor().execute(create_table_sql)
-
-def next_id(connection, table_name, create_table=True, create_row=True):
-    next = None
-    cursor = connection.cursor()
-    try:
-        try:
-            cursor.execute(lock_sql)
-            cursor.execute(select_id_sql, [table_name])
-            next = cursor.fetchone()
-            if not next:
-                cursor.execute(insert_new_sql, [table_name])
-                cursor.execute(select_id_sql, [table_name])
-                next = cursor.fetchone()
-            cursor.execute(update_sql, [table_name])
-        finally:
-            cursor.execute(unlock_sql)
-            cursor.close()
-    except MySQLdb.ProgrammingError, e:
-        # XXX remove
-        global foo
-        foo = e
-        cursor.close()
-        if e.args[0] == ER.NO_SUCH_TABLE:
-            if not create_table:
-                raise
-            create_id_table(connection)
-            return next_id(connection, table_name, create_table=False)
-        else:
-            raise
-    cursor.close()
-    return next[0]
-
diff --git a/ligolw/models.py b/ligolw/models.py
deleted file mode 100644
index 1b36b986bf4008365b88d5c06552bc2307260f4b..0000000000000000000000000000000000000000
--- a/ligolw/models.py
+++ /dev/null
@@ -1,228 +0,0 @@
-
-# This is an auto-generated Django model module.
-# You'll have to do the following manually to clean this up:
-#     * Rearrange models' order
-#     * Make sure each model has one field with primary_key=True
-# Feel free to rename the models, but don't rename db_table values or field names.
-#
-# Also note:
-#   You'll have to insert the output of 'django-admin.py sqlcustom [appname]'
-#   into your database.
-
-from django.db import models
-
-class CoincDefiner(models.Model):
-    search = models.CharField(max_length=150, blank=True)
-    description = models.CharField(max_length=150, blank=True)
-    coinc_def_id = models.CharField(max_length=150, primary_key=True)
-    search_coinc_type = models.IntegerField(null=True, blank=True)
-    class Meta:
-        db_table = u'coinc_definer'
-
-class TimeSlide(models.Model):
-    instrument = models.CharField(max_length=150, primary_key=True)
-    time_slide_id = models.CharField(max_length=150, primary_key=True)
-    process_id = models.CharField(max_length=150, blank=True)
-    offset = models.FloatField(null=True, blank=True)
-    class Meta:
-        db_table = u'time_slide'
-
-class Process(models.Model):
-    program = models.CharField(max_length=150, blank=True)
-    version = models.CharField(max_length=150, blank=True)
-    cvs_repository = models.CharField(max_length=150, blank=True)
-    cvs_entry_time = models.IntegerField(null=True, blank=True)
-    comment = models.CharField(max_length=150, blank=True)
-    is_online = models.IntegerField(null=True, blank=True)
-    node = models.CharField(max_length=150, blank=True)
-    username = models.CharField(max_length=150, blank=True)
-    unix_procid = models.IntegerField(null=True, blank=True)
-    start_time = models.IntegerField(null=True, blank=True)
-    end_time = models.IntegerField(null=True, blank=True)
-    jobid = models.IntegerField(null=True, blank=True)
-    domain = models.CharField(max_length=150, blank=True)
-    ifos = models.CharField(max_length=150, blank=True)
-    process_id = models.CharField(max_length=150, primary_key=True)
-    class Meta:
-        db_table = u'process'
-
-
-class CoincEvent(models.Model):
-    coinc_event_id = models.CharField(max_length=150, primary_key=True)
-    instruments = models.CharField(max_length=150, blank=True)
-    nevents = models.IntegerField(null=True, blank=True)
-    #process_id = models.CharField(max_length=150, blank=True)
-    process =  models.ForeignKey(Process, blank=True)
-    #coinc_def_id = models.CharField(max_length=150, blank=True)
-    coinc_def = models.ForeignKey(CoincDefiner, blank=True)
-    #time_slide_id = models.CharField(max_length=150, blank=True)
-    time_slide = models.ForeignKey(TimeSlide, blank=True)
-    likelihood = models.FloatField(null=True, blank=True)
-    class Meta:
-        db_table = u'coinc_event'
-
-class CoincEventMap(models.Model):
-    event_id = models.CharField(max_length=150, blank=True)
-    table_name = models.CharField(max_length=150, blank=True)
-    coinc_event_id = models.CharField(max_length=150, blank=True)
-    class Meta:
-        db_table = u'coinc_event_map'
-
-class CoincInspiral(models.Model):
-    false_alarm_rate = models.FloatField(null=True, blank=True)
-    mchirp = models.FloatField(null=True, blank=True)
-    #coinc_event_id = models.CharField(max_length=150, blank=True)
-    coinc_event = models.OneToOneField(CoincEvent, primary_key=True)
-    combined_far = models.FloatField(null=True, blank=True)
-    mass = models.FloatField(null=True, blank=True)
-    end_time = models.IntegerField(null=True, blank=True)
-    snr = models.FloatField(null=True, blank=True)
-    end_time_ns = models.IntegerField(null=True, blank=True)
-    ifos = models.CharField(max_length=150, blank=True)
-    class Meta:
-        db_table = u'coinc_inspiral'
-
-
-class Experiment(models.Model):
-    search = models.CharField(max_length=150, blank=True)
-    instruments = models.CharField(max_length=150, blank=True)
-    search_group = models.CharField(max_length=150, blank=True)
-    comments = models.CharField(max_length=150, blank=True)
-    lars_id = models.CharField(max_length=150, blank=True)
-    experiment_id = models.CharField(max_length=150, primary_key=True)
-    gps_start_time = models.IntegerField(null=True, blank=True)
-    gps_end_time = models.IntegerField(null=True, blank=True)
-    class Meta:
-        db_table = u'experiment'
-
-class ExperimentMap(models.Model):
-    experiment_summ_id = models.CharField(max_length=150, blank=True)
-    #coinc_event_id = models.CharField(max_length=150, blank=True)
-    coinc_event = models.ForeignKey(CoincEvent, blank=True)
-    class Meta:
-        db_table = u'experiment_map'
-
-class ExperimentSummary(models.Model):
-    sim_proc_id = models.CharField(max_length=150, blank=True)
-    datatype = models.CharField(max_length=150, blank=True)
-    experiment_summ_id = models.CharField(max_length=150, primary_key=True)
-    nevents = models.IntegerField(null=True, blank=True)
-    #experiment_id = models.CharField(max_length=150, blank=True)
-    experiment = models.ForeignKey(Experiment, blank=True)
-    duration = models.IntegerField(null=True, blank=True)
-    #time_slide_id = models.CharField(max_length=150, blank=True)
-    time_slide = models.ForeignKey(TimeSlide, blank=True)
-    veto_def_name = models.CharField(max_length=150, blank=True)
-    rowid = models.IntegerField(unique=True, db_column='ROWID') # Field name made lowercase.
-    class Meta:
-        db_table = u'experiment_summary'
-
-class Ligolwids(models.Model):
-    tablename = models.CharField(max_length=90, primary_key=True)
-    nextid = models.IntegerField(null=True, blank=True)
-    class Meta:
-        db_table = u'ligolwids'
-
-class ProcessParams(models.Model):
-    program = models.CharField(max_length=150, blank=True)
-    #process_id = models.CharField(max_length=150, blank=True)
-    process = models.ForeignKey(Process, blank=True)
-    param = models.CharField(max_length=150, blank=True)
-    type = models.CharField(max_length=150, blank=True)
-    value = models.CharField(max_length=150, blank=True)
-    class Meta:
-        db_table = u'process_params'
-
-class SearchSummary(models.Model):
-    #process_id = models.CharField(max_length=150, blank=True)
-    process = models.ForeignKey(Process, blank=True)
-    shared_object = models.CharField(max_length=150, blank=True)
-    lalwrapper_cvs_tag = models.CharField(max_length=150, blank=True)
-    lal_cvs_tag = models.CharField(max_length=150, blank=True)
-    comment = models.CharField(max_length=150, blank=True)
-    ifos = models.CharField(max_length=150, blank=True)
-    in_start_time = models.IntegerField(null=True, blank=True)
-    in_start_time_ns = models.IntegerField(null=True, blank=True)
-    in_end_time = models.IntegerField(null=True, blank=True)
-    in_end_time_ns = models.IntegerField(null=True, blank=True)
-    out_start_time = models.IntegerField(null=True, blank=True)
-    out_start_time_ns = models.IntegerField(null=True, blank=True)
-    out_end_time = models.IntegerField(null=True, blank=True)
-    out_end_time_ns = models.IntegerField(null=True, blank=True)
-    nevents = models.IntegerField(null=True, blank=True)
-    nnodes = models.IntegerField(null=True, blank=True)
-    class Meta:
-        db_table = u'search_summary'
-
-class SearchSummvars(models.Model):
-    #process_id = models.CharField(max_length=150, blank=True)
-    process = models.ForeignKey(Process, blank=True)
-    name = models.CharField(max_length=150, blank=True)
-    string = models.CharField(max_length=150, blank=True)
-    value = models.FloatField(null=True, blank=True)
-    search_summvar_id = models.CharField(max_length=150, primary_key=True)
-    class Meta:
-        db_table = u'search_summvars'
-
-class SnglInspiral(models.Model):
-    process_id = models.CharField(max_length=150, blank=True)
-    ifo = models.CharField(max_length=150, blank=True)
-    search = models.CharField(max_length=150, blank=True)
-    channel = models.CharField(max_length=150, blank=True)
-    end_time = models.IntegerField(null=True, blank=True)
-    end_time_ns = models.IntegerField(null=True, blank=True)
-    end_time_gmst = models.FloatField(null=True, blank=True)
-    impulse_time = models.IntegerField(null=True, blank=True)
-    impulse_time_ns = models.IntegerField(null=True, blank=True)
-    template_duration = models.FloatField(null=True, blank=True)
-    event_duration = models.FloatField(null=True, blank=True)
-    amplitude = models.FloatField(null=True, blank=True)
-    eff_distance = models.FloatField(null=True, blank=True)
-    coa_phase = models.FloatField(null=True, blank=True)
-    mass1 = models.FloatField(null=True, blank=True)
-    mass2 = models.FloatField(null=True, blank=True)
-    mchirp = models.FloatField(null=True, blank=True)
-    mtotal = models.FloatField(null=True, blank=True)
-    eta = models.FloatField(null=True, blank=True)
-    kappa = models.FloatField(null=True, blank=True)
-    chi = models.FloatField(null=True, blank=True)
-    tau0 = models.FloatField(null=True, blank=True)
-    tau2 = models.FloatField(null=True, blank=True)
-    tau3 = models.FloatField(null=True, blank=True)
-    tau4 = models.FloatField(null=True, blank=True)
-    tau5 = models.FloatField(null=True, blank=True)
-    ttotal = models.FloatField(null=True, blank=True)
-    psi0 = models.FloatField(null=True, blank=True)
-    psi3 = models.FloatField(null=True, blank=True)
-    alpha = models.FloatField(null=True, blank=True)
-    alpha1 = models.FloatField(null=True, blank=True)
-    alpha2 = models.FloatField(null=True, blank=True)
-    alpha3 = models.FloatField(null=True, blank=True)
-    alpha4 = models.FloatField(null=True, blank=True)
-    alpha5 = models.FloatField(null=True, blank=True)
-    alpha6 = models.FloatField(null=True, blank=True)
-    beta = models.FloatField(null=True, blank=True)
-    f_final = models.FloatField(null=True, blank=True)
-    snr = models.FloatField(null=True, blank=True)
-    chisq = models.FloatField(null=True, blank=True)
-    chisq_dof = models.IntegerField(null=True, blank=True)
-    bank_chisq = models.FloatField(null=True, blank=True)
-    bank_chisq_dof = models.IntegerField(null=True, blank=True)
-    cont_chisq = models.FloatField(null=True, blank=True)
-    cont_chisq_dof = models.IntegerField(null=True, blank=True)
-    sigmasq = models.FloatField(null=True, blank=True)
-    rsqveto_duration = models.FloatField(null=True, blank=True)
-    gamma0 = models.FloatField(null=True, db_column='Gamma0', blank=True) # Field name made lowercase.
-    gamma1 = models.FloatField(null=True, db_column='Gamma1', blank=True) # Field name made lowercase.
-    gamma2 = models.FloatField(null=True, db_column='Gamma2', blank=True) # Field name made lowercase.
-    gamma3 = models.FloatField(null=True, db_column='Gamma3', blank=True) # Field name made lowercase.
-    gamma4 = models.FloatField(null=True, db_column='Gamma4', blank=True) # Field name made lowercase.
-    gamma5 = models.FloatField(null=True, db_column='Gamma5', blank=True) # Field name made lowercase.
-    gamma6 = models.FloatField(null=True, db_column='Gamma6', blank=True) # Field name made lowercase.
-    gamma7 = models.FloatField(null=True, db_column='Gamma7', blank=True) # Field name made lowercase.
-    gamma8 = models.FloatField(null=True, db_column='Gamma8', blank=True) # Field name made lowercase.
-    gamma9 = models.FloatField(null=True, db_column='Gamma9', blank=True) # Field name made lowercase.
-    event_id = models.CharField(max_length=150, primary_key=True)
-    class Meta:
-        db_table = u'sngl_inspiral'
-
diff --git a/settings/development_er2.py b/settings/development_er2.py
index d4a5543b2cc73304e69b429be7809365b5916810..22260173ca1cb7a1474e7395634f26b54ff8b652 100644
--- a/settings/development_er2.py
+++ b/settings/development_er2.py
@@ -9,7 +9,7 @@ DATABASES = {
     'default' : {
         'NAME'     : 'er2',
         'ENGINE'   : 'django.db.backends.mysql',
-        'USER'     : 'gracedb',
+        'USER'     : 'er2',
         'PASSWORD' : 'weasel',
     }
 }