Example #1
0
 def rollback_migration(self, migration_name):
     engine = engines.engine_factory.get_engine()
     filename = self.get_file_name(migration_name)
     with sessions.session_manager(engine=engine) as session:
         self._init_migration_table(session)
         migrations = self._load_migrations(session)
         migrations[filename].rollback(session, migrations)
Example #2
0
 def get_all(self, filters=None, session=None):
     # TODO(efrolov): Add limit and offset parameters
     filters = self._filters_to_storage_view(filters or {})
     with sessions.session_manager(self._engine, session)as s:
         result = self._table.select(engine=self._engine, filters=filters,
                                     session=s)
         for params in result.fetchall():
             yield self.model_cls.restore_from_storage(**params)
Example #3
0
 def insert(self, session=None):
     # TODO(efrolov): Add filters arameters.
     with sessions.session_manager(self._engine, session) as s:
         self._table.insert(engine=self._engine,
                            data=self._get_prepared_data(),
                            session=s)
         # TODO(efrolov): Check result
         self._saved = True
Example #4
0
 def delete(self, session=None):
     # TODO(efrolov): Add filters arameters.
     with sessions.session_manager(self._engine, session) as s:
         result = self._table.delete(
             engine=self._engine,
             ids=self._get_prepared_data(self.get_id_properties()),
             session=s)
         # TODO(efrolov): Check result
         return result
Example #5
0
 def apply_migration(self, migration_name):
     engine = engines.engine_factory.get_engine()
     filename = self.get_file_name(migration_name)
     with sessions.session_manager(engine=engine) as session:
         self._init_migration_table(session)
         migrations = self._load_migrations(session)
         if migrations[filename].is_applied():
             for migration in migrations.values():
                 if filename in migration.depends_from():
                     migration.rollback(session, migrations)
         else:
             migrations[filename].apply(session, migrations)
Example #6
0
 def update(self, session=None):
     # TODO(efrolov): Add filters arameters.
     with sessions.session_manager(self._engine, session) as s:
         result = self._table.update(
             engine=self._engine,
             ids=self._get_prepared_data(self.get_id_properties()),
             data=self._get_prepared_data(self.get_data_properties()),
             session=s)
         if result.get_count() == 0:
             raise exceptions.RecordNotFound(model=self, filters=None)
         if result.get_count() > 1:
             raise exceptions.MultipleUpdatesDetected(model=self,
                                                      filters={})