Opened 13 years ago
Last modified 13 years ago
#185 closed defect (WONTFIX)
Require mongodb v1.3+
Reported by: | Caleb Davis | Owned by: | |
---|---|---|---|
Priority: | trivial | Milestone: | 0.2.1 |
Component: | programming | Keywords: | |
Cc: | Parent Tickets: |
Description
Alert the user to older versions of mongodb, and possibly exit whatever was happening at the time.
Change History (14)
comment:2 by , 13 years ago
Owner: | set to |
---|
mediagoblin/app.py MediaGoblinApp.**init** probably should call something. It might be appropriate in mediagoblin/db/open.py also. ... I'm actually assigning this to Elrond, if he doesn't mind! I think he'll be able to find a good space. We could raise an exception like BadMongoVersion or something. I don't know :)
comment:3 by , 13 years ago
1. Directly in db/open.py:connect\_database\_from\_config(). 2. In init/**init**.py:setup\_database(). \* a) Either directly there, which isn't my favourite. \* b) or by calling some "check\_db\_is\_recent(db)" in db/open.py. (note the actual version isn't in the call! It's in db/open.py.) Option 1 is simple, straight forward and gets the job done. Option 2 gives some parts the option to bypass the check by opening the db connection directly using db/open.py. (probably not relevant). Option 1 and 2b "hide" the actual check away and thus are more "other db backend future proof". Any higher level (app.py) doesn't make sense to me. For example celery most likely also needs a recent enough version. My vote is for 1), unless something needs to bypass the version check and run anyway. What about mongodb upgrades? Do they need any "help" by the apps? Does that make sense?
comment:4 by , 13 years ago
For now I added in the Hacking Howto (`http://wiki.mediagoblin.org/index.php?title=HackingHowto&diff=107&oldid=42 <http://wiki.mediagoblin.org/index.php?title=HackingHowto&diff=107&oldid=42>`_) that v1.3+ is the MongoDB prereq. If one is using Ubuntu, v10.10(Meerkat)+ is recommended for compatibility with MediaGoblin. It's the first Ubuntu rev with a v1.3+ mongodb (v1.4.4 -`https://launchpad.net/ubuntu/+source/mongodb <https://launchpad.net/ubuntu/+source/mongodb>`_) That's the most compact, not scary way I could think of so far to preemptively alert to this dependency. I feel like the above paragraph should go in the hacking howto, but I'm not sure where to put it.
comment:5 by , 13 years ago
oh, nevermind. This makes more sense - `http://wiki.mediagoblin.org/index.php?title=HackingHowto&action=historysubmit&diff=108&oldid=107 <http://wiki.mediagoblin.org/index.php?title=HackingHowto&action=historysubmit&diff=108&oldid=107>`_
comment:6 by , 13 years ago
`http://www.tnrglobal.com/blog/2010/05/how-to-get-the-mongodb-server-version-using-pymongo/ <http://www.tnrglobal.com/blog/2010/05/how-to-get-the-mongodb-server-version-using-pymongo/>`_ I don't think we should use that method for version comparison.. we should use setuptools (distutils?)' version comparison tools. :: >>> from distutils.version import StrictVersion >>> StrictVersion('0.1.0') >= StrictVersion('0.0.5') True
comment:7 by , 13 years ago
Owner: | set to |
---|
I just realized, that this bug is assigned to me. I don't want to block it! So if someone wants to handle it, do so! (removing assigned to just now.) That said, we still need to decide which way to go? 1 or 2b? Do we ever need to bypass the version check? If not, I'd vote for 1. It's simple, straight forward, etc. I have no particular idea on what Exception to raise, or what exactly to do in the bad case.
comment:8 by , 13 years ago
Personally I think 2a) sounds best, but I'd leave it up to the implementer to decide for sure. (We really need some logging mechanism...)
comment:9 by , 13 years ago
1. I dislike 2a) because it moves a db backend specific thing (needed version of **that** backend) into the main non backend code. I know, there's no other backend anywhere soon. Still I don't like that. And 1) is exactly as simple and hides it in the backend. That said, I leave the decision to the actual implementer too. 2. I think, ``StrictVersion`` might be a bad idea: From a quick look at ``help(StrictVersion)`` it seems to be very python specific (for example, two or three numbers only). And nobody knows how the mongodb version looks in the future. ``LooseVersion`` might be better?
comment:10 by , 13 years ago
Milestone: | 0.0.5 → 0.1.0 |
---|
comment:11 by , 13 years ago
Milestone: | 0.1.0 → 0.2.0 |
---|
comment:10 by , 13 years ago
Milestone: | 0.2.0 → 0.2.1 |
---|---|
Priority: | Normal → Low |
We surely wont get his done for 0.2.0. Setting "Low priority", as we've decided to try a move to SQL.
comment:11 by , 13 years ago
Status: | New → Rejected |
---|
Set to rejected. There's no serious reason to invest the time in this anymore.
comment:12 by , 13 years ago
The original url for this bug was http://bugs.foocorp.net/issues/478 .
Relations:
#170: related, #231: related
Note:
See TracTickets
for help on using tickets.