It cannot be Field('"settingName"', length=255, unique=True),
must be Field('settingName', length=255, unique=True), you cannot have quotes in the file name. So it should be db.define_table('GlobalSettings', Field('settingName', length=255, unique=True), Field('settingValue', 'text'), Field('settingID', 'id'), sequence_name='GlobalSettings_settingID_seq', migrate=False) Case must match DB. migrate=False because it exists. I am not 100% sure but I think this should work. On Mar 11, 12:56 pm, Ross Peoples <ross.peop...@gmail.com> wrote: > After also adding migrate=False to the table definition, I now get this > error: > > ProgrammingError: relation "globalsettings" does not exist > LINE 1: ...ngs.settingName, GlobalSettings.settingValue FROM GlobalSett... > > > > > > > > On Thursday, March 10, 2011 3:02:25 PM UTC-5, Richard wrote: > > > remove the " from web2py model and add the sequence name that postgres > > create by default with a different name then web2py expect like this : > > > db.define_table('GlobalSettings', > > Field('settingName', length=255, unique=True), > > Field('settingValue', 'text'), > > Field('settingID', 'id'), > > sequence_name='GlobalSettings_settingID_seq' > > ) > > > It should works... > > > Richard > > > On Thu, Mar 10, 2011 at 2:42 PM, Ross Peoples <ross.p...@gmail.com> wrote: > > >> I have a legacy PostgreSQL database that has its tables and field names > >> created using a case-sensitive means. Whenever I try to do a select(), it > >> returns no rows, and an insert() fails. This is the error that web2py > >> gives: > > >> ProgrammingError: relation "globalsettings_id_seq" does not exist > > >> LINE 1: select currval('GlobalSettings_id_Seq') > > >> This is the actual table definition from pgAdmin3: > > >> CREATE TABLE "GlobalSettings" > >> ( > >> "settingName" character varying(255) NOT NULL, > >> "settingValue" text NOT NULL, > >> "settingID" serial NOT NULL, > >> CONSTRAINT "GlobalSettings_pkey" PRIMARY KEY ("settingID") > >> ) > > >> Attempting to define my table in web2py using double-quotes between > >> single-quotes, like this: > > >> db.define_table('"GlobalSettings"', > >> Field('"settingName"', length=255, unique=True), > >> Field('"settingValue"', 'text'), > >> Field('"settingID"', 'id') > >> ) > > >> results in the following error message: SyntaxError: only [0-9a-zA-Z_] > >> allowed > >> in table and field names, received "settingName"