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 <[email protected]>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"
>