Migrating Your App to Django


Posted

in

,

A few days ago I mentioned Changeset 384 which included a new command, django-admin.py inspectdb <dbname>. It has also been tweaked and improved since it was initially committed. The other day I tried it out on a simple database structure, but I decided to throw a more complex example at it.

I decided to take the final depot application from the excellent Agile Web Development with Rails book. Beta books rule by the way. I executed the SQL in rails-code/depot_final/db/create.sql from the the code tarball to set up the database structure. I then created a new project with django-admin startproject and edited settings/main.py to tell Django how to log in to my mysql database. After exporting the correct DJANGO_SETTINGS_MODULE I ran django-admin.py inspectdb depot_rails which gave me the following model:

# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
#     * Rearrange models' order
#     * Add primary_key=True to one field in each model.
# Feel free to rename the models, but don't rename 
# db_table values or field names.
#
# Also note: You'll have to insert the output of 
# 'django-admin.py sqlinitialdata [appname]'
# into your database.

from django.core import meta

class LineItem(meta.Model):
    db_table = 'line_items'
    fields = (
        meta.IntegerField('id'),
        meta.IntegerField('product_id'),
        meta.IntegerField('order_id'),
        meta.IntegerField('quantity'),
        meta.FloatField('unit_price'),
    )

class Order(meta.Model):
    db_table = 'orders'
    fields = (
        meta.IntegerField('id'),
        meta.CharField('name', maxlength=100),
        meta.CharField('email', maxlength=255),
        meta.TextField('address'),
        meta.CharField('pay_type', maxlength=10),
        meta.DateTimeField('shipped_at'),
    )

class Product(meta.Model):
    db_table = 'products'
    fields = (
        meta.IntegerField('id'),
        meta.CharField('title', maxlength=100),
        meta.TextField('description'),
        meta.CharField('image_url', maxlength=200),
        meta.FloatField('price'),
        meta.DateTimeField('date_available'),
    )

class User(meta.Model):
    db_table = 'users'
    fields = (
        meta.IntegerField('id'),
        meta.CharField('name', maxlength=100),
        meta.CharField('hashed_password', maxlength=40),
    )

Per the comment block at the top, you’re not home free yet, but at lot of tedious work has been done for you. This should definitely jumpstart the porting of existing applications to the Django platform.

Comments

99 responses to “Migrating Your App to Django”

  1. Robin Munn Avatar
    Robin Munn

    It’s worth noting that the model-creation syntax will be changing sometime before Django’s official 1.0 release, in a backwards-incompatible way. Instead of specifying fields with:

    fields = (
    meta.CharField('name', maxlength=50),
    meta.IntegerField('age')
    )

    You’ll specify fields with the following syntax:

    name = meta.CharField(maxlength=50)
    age = meta.IntegerField()

    Watch Django ticket #122 to see when the above change is actually applied to the Django repository.

  2. […] Enquanto alguns artigos concentraram-se em fazer comentários sobre essa comparação ou de explicar como migrar de um web framework para o outro, outros voltaram para as comparações. entre as linguagens. […]

  3. a32ea9cb24c9…

    a32ea9cb24c91ec51557…

  4. Oklahoma Avatar

    good luck,

  5. Рекламное агентство Avatar

    дето тоже читал

  6. OranymnHauddy Avatar

    I think, that you are not right. I am assured.

  7. uticupTHigcog Avatar

    ob es die Analoga Gibt?

  8. sport-markt Avatar

    Registriert

  9. annoripaw Avatar

    It still that?

  10. LarryXA Avatar

    Thx, this has definitely made my day!

    _______________________
    wtf

  11. vpowerauto Avatar

    Как Вы сами сказали “ну я не говорю о блогах”, но тогда можно “не говорить” о многих разработках.

  12. spourpotmet Avatar
    spourpotmet

    Прочитай все SMS и просмотри звонки своих друзей или второй половинки. Уникальная технология перехвата. СДЕЛАТЬ ЗАПРОС

  13. swaxiaTah Avatar

    thanks repayment for the great low-down…

  14. Ornalkutinura Avatar

    Мдаа..интересный пост. Вот только об этом пишут все кому не лень. Ини что, читают друг у друга новости и своим языком их пересказывают? Ð’ сео блогах это особенно заметно. Народ, столько новостей интересных в мире…

  15. Ornalkutinura Avatar

    мало инфы. Ð’Ñ‹ бы хоть постарались написать посто-то. Всё-таки вас читает много народа, да и в поисковике по этой теме вы на первой странице…ай яй яй…не хорошо 🙁

  16. nowsDariwonee Avatar

    А мне всё понравилось. Забрал в букмарки.

  17. nowsDariwonee Avatar

    Хороший блог, удачи в нашем нелёгком деле 🙂

  18. nowsDariwonee Avatar

    Мне ваш сайт понравился. Так же всех с днём защитника отечества 🙂

  19. nowsDariwonee Avatar

    Можно было бы и поподробнее написать

  20. nowsDariwonee Avatar

    Прям шедевр, а не пост. Очень искал инфу на эту тему.

  21. nowsDariwonee Avatar

    Горячее однако обсуждение 🙂 Я бы к посту ещё фоток добавил бы…

  22. nowsDariwonee Avatar

    Хороший сайт, удачи 🙂

  23. Ornalkutinura Avatar

    Вот огромное человческое спасибо вам за этот блог. Кроме этого поста нашёл ещё кучу интересного для себя. Теперь буду заходить сюда постоянно..Я Ваш читатель 🙂

  24. Ornalkutinura Avatar

    Хотела бы обменяться с вами ссылочкой. У меня блог схожей тематики. Если интересно, то напишите на xizabella24@gmail.com

  25. Ornalkutinura Avatar

    Понравился Ваш сайт! В рунете вообще мало чего дельного в блогах пишут. Всё стараются друг у друга скопировать посты. Года 2 назад было интересно ходить по разным блогам-видно было сразу-люди старались писать посты..а щас уже только для яндекса и стараются. Вообщем желаю продолжать Вам в Том же духе.
    С уважением Ваш читатель.

  26. Ornalkutinura Avatar

    +1 к предыдущему коментарию..

  27. Ornalkutinura Avatar

    ООО..давно искал. Забрал в букмарки. Автор, пишите почаще..не забрасывайте блог…Кстати не мешало бы диз поменять.

  28. Ornalkutinura Avatar

    Мне понравился ваш сайт. Добавил в букмарки 🙂

  29. Roman Avatar

    Спасибо, очень понравилось

  30. Ornalkutinura Avatar

    Статья хорошая, только если бы Ñ‚Ñ‹ оформил её немножко получше (добавил скрин-другой, или какой-нибудь арт) и заголовки сделал – тебе бы вообще цены не было 🙂

  31. Ornalkutinura Avatar

    +1 к предыдущему коментарию…форматирование можно было бы и поудобнее сделать. а так очень понравилось

  32. Ornalkutinura Avatar

    Да ладно, чего к человеку пристали. Норм там всё с форматированием. Добавил в закладки ваш сайт.

  33. Ornalkutinura Avatar

    Ух, сколько коментариев то тут набрасали. Ну отмечусь и я-пост бомба..так держать, молодцом автор!!!

  34. Нью Йоркер Avatar

    прочитал, прошу автора и ко мне заглянуть) или добавте меня во френды в контакте мой номер там 4073064

  35. Ornalkutinura Avatar

    +1 На всякий случай скопировал на жёсткий. Просьба к вам-пишите по чаще 🙂

  36. awasseLet Avatar

    Хороший обзор. Сразу видно что старались, за что и спасибо. Интересно было почитать

  37. Ornalkutinura Avatar

    Пост супер!!! Ждём продолжения 🙂

  38. awasseLet Avatar

    Приятный дизаин у вас. Не подскажете, где можно шаблоны такие найти? Желательно бесплатно 🙂

  39. awasseLet Avatar

    Хороший сайт. Столько много инфы тут нарыл для себя.

  40. awasseLet Avatar

    Прикольный блог, жаль тормозит загрзка только..видимо хостинг не очень хороший

  41. nowsDariwonee Avatar

    Интересно написано…ждём продолжения 🙂 Подписался на ваш блог, буду следить за новостями 🙂

  42. xMobiles Avatar

    супер, мне понравилось

  43. Максим Avatar

    Спасибо, очень интерестная статья! Только необходимо поправить шаблон блога, в Опере и в Мазиле искажается дизайн! А в ИЕ все нормально!

  44. Sabina Avatar

    Цифровые зеркальные фотоаппараты позволяют менять объективы.
    Дополнительные возможности при выборе оптики, что позволяет расширять поле зрения или снимать далеко расположенные объекты.
    Для отражения света на видоискатель в цифровых зеркальных фотоаппаратах используется зеркало.
    Сейчас вылетит птичка!

  45. Clement Bradey Avatar

    I propose this site to my boosters so it could be utilitarian & instructive for them besides. Dandy campaign.

  46. Angelika Mantegna Avatar

    You made certain good points there. I did a search on the topic and found a good number of persons will have the same opinion with your blog.

  47. best weight loss pills Avatar

    Strange this put up is totaly unrelated to what I used to be searching google for, but it surely was indexed at the first page. I guess your doing one thing proper if Google likes you enough to place you at the first web page of a non similar search.

  48. QROPS Avatar

    Good issues?I’d notice that as any person who actually doesn’t write on blogs much (in reality, this may be my first post), I don’t suppose the time period ‘lurker’ could be very becoming to a non-posting reader. It’s now not your fault the least bit , but perhaps the blogosphere may just get a hold of a better, non-creepy title for the ninety% people that experience studying the content .

  49. Online Coupons Avatar

    Thank you for making the honest attempt to explain this. I think very robust about it and would like to be informed more. If it’s OK, as you reach extra intensive wisdom, may you mind including extra posts very similar to this one with additional information? It could be extraordinarily useful and useful for me and my colleagues.

  50. lanyards Avatar

    I am speechless. This is a superb weblog and really engaging too. Nice work! That’s no longer in point of fact a lot coming from an amateur writer like me, but it surely’s all I could say after diving into your posts. Great grammar and vocabulary. Not like different blogs. You really know what you?re talking approximately too. So much that you made me want to discover more. Your weblog has transform a stepping stone for me, my friend.