[p2pu-dev] Switching from mysql to sqlite3 for development

Jessica Ledbetter jessica at jessicaledbetter.com
Wed Aug 10 19:29:36 UTC 2011


On Wed, Aug 10, 2011 at 1:02 PM, zuzel.vp <zuzel.vp at gmail.com> wrote:
> Now the question is what needs to be changed in the source code and
> docs to make sqlite the default db for dev.

I think we'd just update settings.local.dist.py Those that have their local
settings to be mysql wouldn't need to replace with sqlite.

Maybe we can do two full examples: mysql and sqlite. Kind of like how the
drupal stuff is in there and we can uncomment it if we want to integrate. Or
we could just have sqlite as the default since those that are using mysql
probably have a little more experience?



> I am working on finding
> the second cause of problems while running the tests (both should be
> related to django_nose since the second one we saw during the workshop
> (admin.autodiscover runs multiple times and thus fails) appeared when
> I upgraded django_nose).
>
> --
> Thanks,
>    Zuzel
>
> On Sat, Aug 6, 2011 at 10:13 PM, Greg Wilson <gvwilson at third-bit.com>
wrote:
>> +1 for using sqlite3 by default for dev --- now, if only we could figure
out
>> why the tests are getting mangled.  Taavi?
>> Thx,
>> G
>>
>> On 11-08-06 9:52 PM, Jessica Ledbetter wrote:
>>
>> Actually this might be from a few commits ago. I think brianloveswords
had
>> this problem. I've been coding on branches so was a little behind on
master.
>>
>> Did a syncdb migrate got this error in the browser:
>> TemplateSyntaxError at /groups/django-101/content/documentation/
>>
>> Caught DoesNotExist while rendering: Signup matching query does not
exist.
>>
>> If memory serves, this has happened before. So, I did what worked last
time
>> when things got a little wonky and that was drop the database and create
it
>> and do a syncdb --migrate again. Unfortunately, that trick didn't work.
>>
>> What I got doing migrate:
>>
>> Running migrations for replies:
>>  - Migrating forwards to
>>
0002_auto__del_field_pagecomment_page__add_field_pagecomment_scope_content_.
>>  > replies:0001_initial
>>  ! Error found during real run of migration! Aborting.
>>
>>  ! Since you have a database that does not support running
>>  ! schema-altering statements in transactions, we have had
>>  ! to leave it in an interim state between migrations.
>>
>> ! You *might* be able to recover with:   = DROP TABLE
`replies_pagecomment`
>> CASCADE; []
>>
>>  ! The South developers regret this has happened, and would
>>  ! like to gently persuade you to consider a slightly
>>  ! easier-to-deal-with DBMS.
>>  ! NOTE: The error which caused the migration to fail is further up.
>> Traceback (most recent call last):
>>   File "./manage.py", line 26, in <module>
>>     execute_manager(settings)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/django/core/management/__init__.py",
>> line 438, in execute_manager
>>     utility.execute()
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/django/core/management/__init__.py",
>> line 379, in execute
>>     self.fetch_command(subcommand).run_from_argv(self.argv)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/django/core/management/base.py",
>> line 191, in run_from_argv
>>     self.execute(*args, **options.__dict__)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/django/core/management/base.py",
>> line 220, in execute
>>     output = self.handle(*args, **options)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/django/core/management/base.py",
>> line 351, in handle
>>     return self.handle_noargs(**options)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/management/commands/syncdb.py",
>> line 99, in handle_noargs
>>     management.call_command('migrate', **options)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/django/core/management/__init__.py",
>> line 166, in call_command
>>     return klass.execute(*args, **defaults)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/django/core/management/base.py",
>> line 220, in execute
>>     output = self.handle(*args, **options)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/management/commands/migrate.py",
>> line 105, in handle
>>     ignore_ghosts = ignore_ghosts,
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/migration/__init__.py",
>> line 191, in migrate_app
>>     success = migrator.migrate_many(target, workplan, database)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/migration/migrators.py",
>> line 221, in migrate_many
>>     result = migrator.__class__.migrate_many(migrator, target,
migrations,
>> database)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/migration/migrators.py",
>> line 292, in migrate_many
>>     result = self.migrate(migration, database)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/migration/migrators.py",
>> line 125, in migrate
>>     result = self.run(migration)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/migration/migrators.py",
>> line 99, in run
>>     return self.run_migration(migration)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/migration/migrators.py",
>> line 82, in run_migration
>>     south.db.db.execute_deferred_sql()
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/db/generic.py",
>> line 184, in execute_deferred_sql
>>     self.execute(sql)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/south/db/generic.py",
>> line 150, in execute
>>     cursor.execute(sql, params)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/django/db/backends/util.py",
>> line 34, in execute
>>     return self.cursor.execute(sql, params)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/django/db/backends/mysql/base.py",
>> line 86, in execute
>>     return self.cursor.execute(query, args)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/MySQLdb/cursors.py",
>> line 173, in execute
>>     self.errorhandler(self, exc, value)
>>   File
>>
"/home/jledbetter/Envs/lernanta/lib/python2.6/site-packages/MySQLdb/connections.py",
>> line 36, in defaulterrorhandler
>>     raise errorclass, errorvalue
>> _mysql_exceptions.OperationalError: (1005, "Can't create table
>> 'lernanta.#sql-3d3_a9f' (errno: 150)")
>>
>>
>> Here's how I fixed it -- in case others have this. I switched from mysql
to
>> sqlite3! Yes, probably about time :) Greg reminded me of its
wonderfulness
>> in IRC today and this seemed the perfect time to update my local
>> installation too!
>>
>> Sqlite3 is great for development and I've been using it elsewhere but was
>> using mysql for local development on Lernanta. Why? Mostly because I was
>> more familiar with mysql and it came that way :)
>>
>> To switch to sqlite3, in your settings_local.py file put this:
>>
>> DATABASES = {
>>
>>     'default': {
>>         'NAME': '/home/jledbetter/projects/lernanta/lernanta.db',
>>         'ENGINE': 'django.db.backends.sqlite3',
>>     }
>>
>> }
>>
>> where your database information is. Of course, update the path to the
file
>> (the database "name") to be where the file is that you're using. The
engine
>> switches from msyql to sqlite3. The rest of the stuff isn't needed, I
don't
>> think. You don't need the mysql version but feel free to just comment it
out
>> in case you want to switch back or there are problems.
>>
>> Maybe we should have the default in settings_local.dist.py to be sqlite3?
>> Would save us a bit of mysql documentation/headache.
>>
>> Jessica
>>
>>
>> --
>> Jessica Ledbetter
>> http://jessicaledbetter.com
>>
>>
>> _______________________________________________
>> p2pu-dev mailing list
>> p2pu-dev at lists.p2pu.org
>> http://lists.p2pu.org/mailman/listinfo/p2pu-dev
>>
>>
>> _______________________________________________
>> p2pu-dev mailing list
>> p2pu-dev at lists.p2pu.org
>> http://lists.p2pu.org/mailman/listinfo/p2pu-dev
>>
>>
> _______________________________________________
> p2pu-dev mailing list
> p2pu-dev at lists.p2pu.org
> http://lists.p2pu.org/mailman/listinfo/p2pu-dev
>



-- 
Jessica Ledbetter
http://jessicaledbetter.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.p2pu.org/pipermail/p2pu-dev/attachments/20110810/d3ca1830/attachment.html>


More information about the p2pu-dev mailing list