|
Скрипт обновления базы данных
|
|||
---|---|---|---|
#18+
Всем привет. Пишу софт для мобильников, недавно столкнулся с SQLite, при обновлении программы (если база то же обновляется) нужен скрипт обновления вида: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Возникает вопрос, поскольку базу для программы я заполняю изначально, есть ли такой менеджер баз данных, который бы автоматом генерировал подобный скрипт?? Спасибо. P.S. Если пишу что-то не так или не ясно - говорите, терминологией не владею, за что прошу прощения. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2014, 08:23 |
|
Скрипт обновления базы данных
|
|||
---|---|---|---|
#18+
NOSCВозникает вопрос, поскольку базу для программы я заполняю изначально, есть ли такой менеджер баз данных, который бы автоматом генерировал подобный скрипт??Есть. Любой data modeler. Впрочем, я не знаю в каком из них есть полноценная поддержка sqlite. Но можно попробавть на абстрактных моделях поработать - если не использовать sqlite фишки а ограничиваться стандартным sql-92 то любой DM пойдет. NOSCP.S. Если пишу что-то не так или не ясно - говорите, терминологией не владею, за что прошу прощения.учи. Не знание терминологии мешает исключительно тому кто не знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2014, 19:17 |
|
Скрипт обновления базы данных
|
|||
---|---|---|---|
#18+
NOSC, По-моему автоматом генерить подобные скрипты опасно и в общем случае наверно это сделать не возможно (всякие триггера и прочее). думаю правильнее хранить номер версии модели базы данных и в коде инициализации отрабатывать все alter-ы в зависимости от версии. В твоем примере ты создаешь временную таблицу. 1. не эффективно особенно если таблица будет иметь большой размер 2. нужно перед накатом убедиться, что таблица уже не содержит этой колонки. 3. если есть индексы/триггера то они похерятся. Я бы в этом случае вообще обошелся без временной таблицы Код: sql 1. 2.
Если колонка уже есть - альтер кинет исключение - его можно поймать ниже и апдейт естественно не делать. В общем я у себя миграцию сделал вот таким способом - пока полет нормальный - в таблице fly_revision хранится версия программы. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Полный код тут http://code.google.com/p/flylinkdc/source/browse/trunk/client/CFlylinkDBManager.cpp ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2014, 09:51 |
|
|
start [/forum/topic.php?fid=54&msg=38554021&tid=2008819]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 157ms |
0 / 0 |