2012-02-11 6 views
1

Было много вопросов в этом направлении, но я изо всех сил пытаюсь применить их к моему сценарию. Любая помощь будет принята с благодарностью!Синхронизация Python с mySQL для локального приложения?

В настоящее время у нас есть работающая база данных mySQL, размещенная на веб-сайте, данные вводятся с веб-сайта, а через PHP он помещается в базу данных.

В то же время мы хотим создать приложение python, работающее в автономном режиме. Он должен выполнять все те же функции, что и веб-версия, и запускаться полностью локально, это означает, что ему нужна копия всей базы данных для запуска локально, и когда изменения внесены в такую ​​локальную базу данных, они синхронизируются в следующий раз, когда есть доступное интернет-соединение ,

Во-первых, я не знаю, каким лучшим способом было бы запустить такую ​​базу данных в автономном режиме. Я рассматривал возможность создания локального хоста, однако это должно быть доступно для многих машин. Следовательно, настройка локального хоста через какой-то установщик может быть непрактичной?

Во-вторых синхронизация? Не знаю, как это сделать!

Любая помощь будет очень оценена.

Спасибо!

ответ

0

Насколько высокопроизводительным является ваше местное приложение? Кроме того, насколько надежным является локально доступное интернет-соединение? Если вам не нужна чрезвычайно высокая производительность, почему бы просто не оставить данные на удаленном сервере MySQL?

Если вы уверены, что вам нужен доступ к локальным данным, я бы посмотрел встроенную репликацию MySQL для синхронизации. Это очень просто настроить/использовать, и вы можете использовать его для поддержки локальной доступной для чтения копии удаленной базы данных для быстрого доступа к данным. Вы просто создали в своем приложении возможность выполнять запросы на запись на удаленном сервере и выполнять чтение запросов к локальной базе данных. Время запаздывания между двумя серверами, как правило, очень низкое ... например, порядка миллисекунд ... но вам все равно приходится бороться с сетевыми перегрузками, чтобы локальная база данных ведомого не синхронизировалась с мастером мгновенно.

Что касается стороны python, google mysql-python, потому что вам понадобится привязка mysql python для работы с базой данных MySQL. Наконец, я настоятельно рекомендую SQLalchemy как ORM с python, потому что это сделает вашу жизнь намного проще.

Я бы сказал, что идеальным решением было бы создать удаленный веб-сервис REST API и использовать его вместо прямого доступа к базе данных. Конечно, у вас могут не быть собственных возможностей, времени или желания сделать это ...который также хорошо :)

0

Планируете ли вы запускать mysql в своих локальных оффлайновых приложениях python? Я бы предложил что-то вроде sqlite. Что касается синхронизации событий, это также зависит от типа данных, которые необходимо синхронизировать. Один вопрос, на который нужно ответить:

Являются ли данные, созданные этими приложениями python, что-то, что является проблемой? Если да (т. Е. Он не имеет каких-либо отношений с другими объектами), то вы можете локализовать данные локально и направить их на веб-сайт, размещенный на центральном уровне.

1

Для связывания Python для MySql можно использовать HTSQL:

http://htsql.org

Вы можете также опрашивать БД MySQL с помощью запросов HTTP, либо с помощью AJAX вызовы или на стороне сервера, например, cURL (и, конечно, все еще есть возможность писать стандартные SQL-запросы).

Плагин JQuery под названием HTRAF, который обрабатывает вызовы AJAX на стороне клиента на сервер HTSQL.

Сервер HTSQL также работает на локальном хосте.

Какой операционной системой вы бы пользовались?

Смежные вопросы