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"

Reply via email to