Я впервые использую mongoengine, я знаю концепцию ORM. Я хочу знать, могу ли я получить данные в одной БД и использовать тот же объект для хранения в другой БД?
class User(Document):
email = EmailField(required=True, unique= True)
salary = IntField(require=True)
connect(alias='default',db='tumblelog')
connect(alias='testdb',db='testdb')
users = User.objects
with switch_db(User,'testdb') as User:
for user in users:
User(email=user.email,salary=user.email).save # it works
user.save() #doesn't works
Я пробовал, но мне не удалось сохранить в другой БД тем же объектом
Можете ли вы показать больше своего кода? А в чем именно ошибка?
пример кода в моем сообщении, и ошибки нет ~~~ просто ничего не произошло
Я обнаружил, что, используя ORM для получения данных из одной БД, он создает объект, уникальный для той БД, из которой вы его получаете. Вы не сможете использовать тот же объект для сохранения в другой БД.
Я бы посоветовал вам инициализировать пустой объект, например User
, для другой БД и заполнить его значениями из исходного объекта, а затем сохранить.
Возможно, вы захотите взглянуть на этот вопрос. Продолжение: использование нескольких баз данных
Спасибо за ответ. В ORM объект прикрепляется к конкретной БД. Можно ли отсоединить и присоединить к другой БД?
Я не думаю, что это возможно. Каждый экземпляр объекта создается с такой информацией о базе данных, как (хост базы данных, URL-адрес и т. д.).
Да, у тебя должно получиться. Вы пробовали делать? Столкнулись с какой-либо проблемой?