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', } }