| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
| |
Session() :)
Thanks for catching, Elrond :)
|
|
|
|
|
|
|
| |
This allows SQLAlchemy models to gain access to app-level configuration
without the need for global variables.
This commit sponsored by Peter Hogg. Thank you, Peter!
|
| |
|
|
|
|
|
|
| |
compatibility
Really we should stop relying on that though.
|
| |
|
|
|
|
| |
They're both similar! One sets up sessions, one grabs sessions from a global object.
|
| |
|
|
|
|
|
| |
This is another step to get to a no-globals configuration. I'm not
sure if this code works yet or not... :)
|
| |
|
| |
|
|
|
|
| |
plugin style
|
|
|
|
|
|
| |
cleaner
Also, if migrations is true, *explicitly* say that foreign key checking is off
|
| |
|
|
|
|
|
|
| |
sqlite normally does not check foreign key referential
integrity. But it can do so.
So let's use it. Better safe than sorry.
|
|
|
|
|
|
|
|
| |
This concludes the db.sql.* -> db.* move. Our db abstraction layer is
sqlalchemy, so there is no need to a separate db.sql.* hierarchy.
All tests have been run for each of the commit series to make sure
everything works at every step.
|
| |
|
|
|
|
|
|
| |
Now that mongo has been ripped out and sqlalchemy is already providing
the database abstraction, there is no need to hide everything in the sql
module. Transition db.sql.open to db.open and adapt all direct importers.
|
|
|
|
|
|
|
|
|
| |
Since sqlalchemy is providing our database abstraction and we have
moved away from Mongo as the underlying database, it is now time to
simplify things and rip out mongo. This provides the bulk of the
changes, and can stand on its own. There are some followup tasks
that can be done, such as removing now unneeded abstraction layers,
e.g. db.sql.fake.py
|
|
|
|
|
|
|
|
|
|
|
|
| |
So all models are ready when connecting to the db and so
our "db" object has all models listed on it, create a
function to load all models from the media_types, etc. Call
it in setup_database()
Problem: This gives celery warnings, because celery is
imported before being setup properly. No idea how to fix
this now. So media-type loading is excluded from
load_models for now.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you want to play with the current state of sql, you need
a switch to turn it on. So here is the super secret
developer switch.
So you want to know where it is?
Here it is:
Create a file mediagoblin/db/sql_switch.py and put one line
in it: "use_sql = True" (or False to disable again). Right,
that's it. If you want to delete it, remember to delete the
*.pyc too.
Be careful not to "git add" it by accident!
|
|
|
|
|
|
|
|
|
|
| |
When initializing the database connection the current mongo
based setup checked for new migrations and warned about
them. This was mongo specific so factor'd it out into a
more generic check_db_migrations_current function in the
mongo backend.
Also created a dummy one in the sql backend.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Starting to move the mongo specific stuff into db/mongo.
And create thin "from db.mongo.Y import z" wrappers in
db/Y.py.
Why?
1) Will make it lots easier to switch to sql for
testing/developing.
2) The mongo stuff needs to stay around after moving to
sql, because the converter needs it.
|
|
|
|
|
|
|
| |
* Removed trailing whitespace
* Line length < 80 where possible
* Honor conventions on number of blank lines
* Honor conventions about spaces around :, =
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
mediagoblin/db/open.py
|
| |
| |
| |
| |
| |
| |
| | |
The default name of the database ("mediagoblin") was coded
in db/open.py and init/celery/__init__.py.
Instead use the new config system to have this as the
default for the "db_name" config option.
|
|/ |
|
|
I needed to split the db connection/opening into open.py,
due to an import loop:
- util.py needs db/util.py:ObjectId
- db/util.py would need db/models.py
- db/models.py needs util.py:slugify
|