| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
- This adds a new SQL table field type for path tuples.
They're stored as '/' separated unicode strings.
- Uses it to implement a MediaFile table.
- Add relationship and proxy fields on MediaEntry to give a
nice media_files "view" there.
- Let the converter fill the MediaFile.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A bunch of functions on the db objects are really more like
"utility functions": They could live outside the classes
and be called "by hand" passing the appropiate reference.
They usually only use the public API of the object and
rarely use database related stuff.
Goals:
- First, simple: Share the code with the SQL objects, so
that the code doesn't need to be duplicated.
- Second, it might unclutter the db models and make them
more into "model only" stuff.
- Doesn't really hurt.
|
|
|
|
|
|
|
|
|
|
| |
1. Use the new setup_connection_and_db_from_config in the
sql backend.
2. Use sql and mongo specific functions wherever
appropiate instead of the generic "db.X" one. This makes
the converter more indepedent of the current backend
choice.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
This is a shortcut to adding the object to a session (if
needed) and giving a commit on the session.
In reality, calling code should probably utilize the
session on its own and call commit in an appropiate place.
|
|
|
|
|
|
| |
Some parts of the code like to call .get("somefield") on
the db objects. It's easy to support this on sqlalchemy
based objects, so lets do it.
|
|
|
|
|
|
| |
MediaEntry now has a get_uploader (property) loading the
appropiate User object for the MediaEntry (and caches it).
MediaComment has the same for author as get_author.
|
|
|
|
|
|
|
|
| |
While creating the new SQL model, the "state" field of
MediaEntry was left out. Currently using a plain unicode
string for it.
Maybe should use sqlalchemy.types.Enum?
|
|
|
|
|
|
|
|
| |
So that the old code can access the primary key still as
"._id".
Quite simple Python Descriptor thing.
Very generic.
|
| |
|
|
|
|
| |
And create a _fix_query_dict which converts '_id' to 'id'.
|
|
|
|
|
|
|
|
| |
In trying to ease the migration to SQL, created an
interface to sqlalchemy that looks a lot like the interface
that is currently in use.
*WARNING* Work in progress
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is just a start at a Migration tool from Mongo to SQL.
It fills all currently available SQL models with data from
MongoDB. A few fields in the SQL tables are left out,
because some data format migrations are needed (notably:
queue_file_name).
This thing lives in mediagoblin/db/sql/convert.py because
it has a lot of stuff hardcoded and is not, repeat not for
end users!
Hard coded:
- output database: ./mediagoblin.db (sqlite)
- Mediagoblin config: ./mediagoblin.ini
|
|
|
|
|
|
| |
- Add title to the MediaEntry
- Rename fp_verification_expire to fp_token_expire to
follow the mongo model.
|
|
|
|
|
|
|
|
| |
Run bin/python mediagoblin/db/sql/models.py and watch the
create tables on a memory sqlite db.
Also unicode strings need unicode defauls. Warning by
sqlalchemy.
|
|
So we can play with the sql models, let's put them in a
proper place.
|