MySQL передачи к SQLite

Существует два основных подхода к бизнес-правилам при разработке вашего домена.

1.) Доменные объекты являются базовыми POCO / DTO с. И вы передаете их доменным службам. Эти сервисы могут быть такими же простыми, как другой класс, или они действительно могут быть реальными сервисами, расположенными на другом сервере.

var user = repository.Find(x => x.UserName == userName);
if (userLogonService.IsValidUser(user, password)) {
   userLogonService.UpdateUserAsLoggedOn(user);
}
repository.SaveChanges();

2.) Доменные объекты содержат свою собственную логику работы. Это ближе к тому, что последуют многие паттерны MVC. И так как вы спросили, это модель, которую я предпочитаю.

var user = repository.Find(x => x.UserName == userName);
if (user.CheckPassword(password)) {
    user.LogOnNow();
}
repository.SaveChanges();

Оба являются полностью действительными шаблонами. # 1 имеет отдельный уровень бизнес-операций, но страдает от модели анемичной области . # 2 может привести к большим объектам домена, если ваш домен начинает усложняться, или если модель может делать много вещей.

РЕДАКТИРОВАТЬ # 1: Ответ Джону Крафт

Oven.Bake (myPizza) против myPizza.Bake ()

Я в основном согласен. Есть ли у вас единая служба Духовки, или у вас есть десятки доступных печей, которые хранятся в хранилище духовок, где духовка - это просто еще один домен? В # 2 печь является частью домена. То, как я склонен заниматься предметным моделированием, большинство существительных являются предметными сущностями , если только вы не уверены на 100%, что это именно то, что нужно.

Но что-то случается с пиццей, когда она выпекается.

interface ICanBeBaked {
    int BakeMinutes { get; }
    int BakeTemp { get; }
    void Bake();
}
class Pizza : ICanBeBaked {
    int BakeMinutes { get { return 15; } }
    int BakeTemp { get { return 425; } }
    void Bake() {
        // melt cheese!
        this.isBaked = true;
    }
}
class Oven {
    void Bake(ICanBeBaked thingToBake) {
        // set the temp, reserve this oven for the duration, etc.
        thingToBake.Bake();
    }
}

7
задан OMG Ponies 3 November 2009 в 03:30
поделиться

5 ответов

Возможно, самым простым было бы использовать mysqldump для выгрузки необработанного SQL из вашей базы данных MySQL в текстовый файл, а затем использовать sqlite3_exec () функция для выполнения этого SQL для заполнения базы данных SQLite.

6
ответ дан 7 December 2019 в 10:04
поделиться

Вы можете использовать пробную версию http://www.sqlmaestro.com/products/sqlite/datawizard/

. Она полностью функциональна в течение 30 дней.

0
ответ дан 7 December 2019 в 10:04
поделиться

Вы смотрели этот Perl-скрипт ? Я не использовал его - просто произвел быстрый поиск миграции mysql на sqlite, и он сразу всплыл.


Изменить (после того, как вы ответили на мой комментарий):

Обратное направление рассматривается здесь .

Если вы собираетесь делать это неоднократно и если должны произойти изменения структуры данных, возможно, вам будет лучше использовать что-то вроде Django (хотя и очень хакерским способом). С его помощью я бы:

# This three lines are done once
django-admin.py startproject mymigrationproject
cd mymigrationproject
./manage.py startapp migration

# The following lines you repeat each time you want to migrate the data
edit settings.py and make the changes to connect to MySQL
./manage.py inspectdb > ./migration/models.py
edit ./migration/models.py to reorder tables (tables in which other tables depend on top)
mkdir fixtures
./manage.py dumpdata migration > ./fixtures/data.json
edit settings.py and make the changes to connect to SQLite
./manage.py syncdb
./manage.py loaddata ./fixtures.data.json
1
ответ дан 7 December 2019 в 10:04
поделиться

Существует бесплатный продукт ETL, который можно использовать для миграции данных из одной БД в другое. Посмотрите: http://www.talend.com/index.php

Удачи!

-1
ответ дан 7 December 2019 в 10:04
поделиться

Вы можете получить драйверы ODBC для Mac OS X от Actual Technologies.

http://www.actualtech.com/

Для подключения к MySQL вам потребуется их драйвер ODBC для баз данных с открытым исходным кодом:

http://www.actualtech.com/product_opensourcedatabases.php

( Отказ от ответственности: я являюсь автором SQLite Migrator)

0
ответ дан 7 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: