开发者

Reverse engineer an ORM

开发者 https://www.devze.com 2022-12-26 17:33 出处:网络
Given a [mysql] database with a given schema, is it possible to generate an ORM interfac开发者_JAVA技巧e for it? doesn\'t matter if its php, python or perl.

Given a [mysql] database with a given schema, is it possible to generate an ORM interfac开发者_JAVA技巧e for it? doesn't matter if its php, python or perl.

in other words, I have a database and I have to ask it a few questions. while I could just craft a bunch of SQL queries (okay, several dozen), this is way more interesting to think about.

is this a valid question, even? I have no design background with ORMs, but I've used a few (django's, symfony's, etc).


Django's ORM will do this for you (or at least it will get the process started for you).

Just set up a django app as you normally would (including DB connection settings), then do this:

$ python manage.py inspectdb > models.py

I did this once to help me make sense of a legacy (php) website database that I was tasked with maintaining. It was a little work, but ultimately I was able to use the django admin site to manage it (the project was shelved, but that's another story).

See: http://docs.djangoproject.com/en/dev/howto/legacy-databases/


I'm not sure exactly what you're asking, but I suspect the answer is "sure, you can point an ORM tool at an existing database and get back some classes that are somewhat useful"

Doctrine comes to mind as a PHP ORM tool that can (sort of) do this. If your schema has reasonable names for things, it will do it's best to discover relationships for you, etc.

Not sure that it's actually worth the effort, but if you're curious, why not give it a spin?

0

精彩评论

暂无评论...
验证码 换一张
取 消