Yes but replace
if db(db.state.id>0).count() == 0:
with
if cache.ram('init',lambda:db(db.state.id>0).count(),None) == 0:
So that is executed once and then cached forever.
On Friday, 10 August 2012 16:57:45 UTC-5, Richard wrote:
>
> if db(db.state.id>0).count() == 0:
> db.state.truncate()
> db.city.truncate()
> db.zipcode.truncate()
> db.areacode.truncate()
> db.state.insert(name='Texas')
> db.state.insert(name='Illinois')
> db.state.insert(name='California')
>
> db.city.insert(name='Austin',state=1)
> db.city.insert(name='Dallas',state=1)
> db.city.insert(name='Chicago',state=2)
> db.city.insert(name='Aurora',state=2)
> db.city.insert(name='Los Angeles',state=3)
> db.city.insert(name='San Diego',state=3)
>
> db.zipcode.insert(value='78704',city=1)
> db.zipcode.insert(value='78745',city=1)
> db.zipcode.insert(value='75001',city=2)
> db.zipcode.insert(value='75038',city=2)
> db.zipcode.insert(value='60606',city=3)
> db.zipcode.insert(value='60607',city=3)
> db.zipcode.insert(value='60504',city=4)
> db.zipcode.insert(value='60505',city=4)
> db.zipcode.insert(value='90005',city=5)
> db.zipcode.insert(value='90006',city=5)
> db.zipcode.insert(value='92101',city=6)
> db.zipcode.insert(value='92102',city=6)
>
> db.areacode.insert(value='512',zipcode=1)
> db.areacode.insert(value='511',zipcode=1)
> db.areacode.insert(value='345',zipcode=2)
> db.areacode.insert(value='456',zipcode=2)
> db.areacode.insert(value='567',zipcode=3)
> db.areacode.insert(value='678',zipcode=3)
> db.areacode.insert(value='789',zipcode=4)
> db.areacode.insert(value='890',zipcode=4)
> db.areacode.insert(value='901',zipcode=5)
> db.areacode.insert(value='321',zipcode=5)
> db.areacode.insert(value='432',zipcode=6)
> db.areacode.insert(value='534',zipcode=6)
> db.areacode.insert(value='645',zipcode=7)
> db.areacode.insert(value='765',zipcode=7)
> db.areacode.insert(value='876',zipcode=8)
> db.areacode.insert(value='987',zipcode=8)
> db.areacode.insert(value='141',zipcode=9)
> db.areacode.insert(value='252',zipcode=9)
> db.areacode.insert(value='363',zipcode=10)
> db.areacode.insert(value='474',zipcode=10)
> db.areacode.insert(value='585',zipcode=11)
> db.areacode.insert(value='686',zipcode=11)
> db.areacode.insert(value='797',zipcode=12)
> db.areacode.insert(value='898',zipcode=12)
>
>
> You can put something like that in models somewhere.
>
> You just need to adapt for you particular table and the records you want
> to create and verify the presence of.
>
> Just wrote the proper db request with the proper where attribute :
>
> Let's say you have create user1 in auth_user so you can write this :
>
> if db(db.auth_user.first_name = 'user1').count() != 1:
> db.auth_user.insert(first_name='user1')
>
> Hope it what you were searching for.
>
> Richard
>
> On Fri, Aug 10, 2012 at 5:56 AM, tommasot <[email protected] <javascript:>
> > wrote:
>
>> I have a newbie question.
>>
>> I need to create some record in db on application startup,like for
>> example default user and other things..
>>
>>
>>
>> Where is the right script/place to implement it
>>
>>
>>
>> --
>>
>>
>>
>>
>
--