Пример #1
0
    def test_event(self):
        from ptah.populate import create_db_schema

        data = [False]
        def event_handler(ev):
            data[0] = True

        self.registry.registerHandler(
            event_handler, (ptah.events.BeforeCreateDbSchema,))

        create_db_schema(self.registry)
        self.assertTrue(data[0])
Пример #2
0
    def test_event(self):
        from ptah.populate import create_db_schema

        data = [False]

        def event_handler(ev):
            data[0] = True

        self.registry.registerHandler(event_handler,
                                      (ptah.events.BeforeCreateDbSchema, ))

        create_db_schema(self.registry)
        self.assertTrue(data[0])
Пример #3
0
    def test_skip_tables(self):
        from ptah.populate import create_db_schema

        base = ptah.get_base()

        class test_populate_TestTable(base):
            __tablename__ = 'test_populate_TestTable'

            id = sqla.Column('id', sqla.Integer, primary_key=True)

        cfg = ptah.get_settings(ptah.CFG_ID_PTAH)
        cfg['db_skip_tables'] = ('test_populate_TestTable',)

        create_db_schema(self.registry)

        self.assertFalse(
            base.metadata.tables['test_populate_TestTable'].exists())

        cfg['db_skip_tables'] = ()
        create_db_schema(self.registry)

        self.assertTrue(
            base.metadata.tables['test_populate_TestTable'].exists())
Пример #4
0
    def test_skip_tables(self):
        from ptah.populate import create_db_schema

        base = ptah.get_base()

        class test_populate_TestTable(base):
            __tablename__ = 'test_populate_TestTable'

            id = sqla.Column('id', sqla.Integer, primary_key=True)

        cfg = ptah.get_settings(ptah.CFG_ID_PTAH)
        cfg['db_skip_tables'] = ('test_populate_TestTable', )

        create_db_schema(self.registry)

        self.assertFalse(
            base.metadata.tables['test_populate_TestTable'].exists())

        cfg['db_skip_tables'] = ()
        create_db_schema(self.registry)

        self.assertTrue(
            base.metadata.tables['test_populate_TestTable'].exists())
Пример #5
0
def main():
    parser = argparse.ArgumentParser(description="ptah migrate")
    parser.add_argument('config', metavar='config', help='ini config file')

    subparsers = parser.add_subparsers()

    # revision
    subparser = subparsers.add_parser(revision.__name__, help=revision.__doc__)
    subparser.add_argument('package', metavar='package', help='package name')
    subparser.add_argument("-r",
                           "--revision",
                           type=str,
                           dest='revid',
                           help="Unique revision id")
    subparser.add_argument("-m",
                           "--message",
                           type=str,
                           dest='message',
                           help="Message string to use with 'revision'")
    subparser.set_defaults(cmd='revision')

    # current
    subparser = subparsers.add_parser(current.__name__, help=current.__doc__)
    subparser.add_argument('package',
                           metavar='package',
                           nargs='*',
                           help='package name')
    subparser.set_defaults(cmd='current')

    # upgrade
    subparser = subparsers.add_parser(upgrade.__name__, help=upgrade.__doc__)
    subparser.add_argument('package',
                           metavar='package',
                           nargs='*',
                           help='package name')
    subparser.set_defaults(cmd='upgrade')

    # history
    subparser = subparsers.add_parser(history.__name__, help=history.__doc__)
    subparser.add_argument('package',
                           metavar='package',
                           nargs='*',
                           help='package name')
    subparser.set_defaults(cmd='history')

    # list
    subparser = subparsers.add_parser('list',
                                      help='List registered migrations.')
    subparser.set_defaults(cmd='list')

    # parse
    args = parser.parse_args()

    # bootstrap pyramid
    env = scripts.bootstrap(args.config)

    if args.cmd == 'current':
        print('')
        if not args.package:
            args.package = ptah.get_cfg_storage(MIGRATION_ID).keys()

        for pkg in args.package:
            current(pkg)

    if args.cmd == 'revision':
        if args.revid:
            for ch in ',.;-':
                if ch in args.revid:
                    print('Revision id contains forbidden characters')
                    ptah.shutdown()
                    return

        revision(args.package, args.revid, args.message)

    if args.cmd == 'upgrade':
        # create db schemas
        create_db_schema(env['registry'], False)

        for pkg in args.package:
            upgrade(pkg)

    if args.cmd == 'history':
        if not args.package:
            args.package = ptah.get_cfg_storage(MIGRATION_ID).keys()

        for pkg in args.package:
            history(pkg)

    if args.cmd == 'list':
        list_migrations(env['registry'])

    ptah.shutdown()
Пример #6
0
def main():
    parser = argparse.ArgumentParser(description="ptah migrate")
    parser.add_argument("config", metavar="config", help="ini config file")

    subparsers = parser.add_subparsers()

    # revision
    subparser = subparsers.add_parser(revision.__name__, help=revision.__doc__)
    subparser.add_argument("package", metavar="package", help="package name")
    subparser.add_argument("-r", "--revision", type=str, dest="revid", help="Unique revision id")
    subparser.add_argument("-m", "--message", type=str, dest="message", help="Message string to use with 'revision'")
    subparser.set_defaults(cmd="revision")

    # current
    subparser = subparsers.add_parser(current.__name__, help=current.__doc__)
    subparser.add_argument("package", metavar="package", nargs="*", help="package name")
    subparser.set_defaults(cmd="current")

    # upgrade
    subparser = subparsers.add_parser(upgrade.__name__, help=upgrade.__doc__)
    subparser.add_argument("package", metavar="package", nargs="*", help="package name")
    subparser.set_defaults(cmd="upgrade")

    # history
    subparser = subparsers.add_parser(history.__name__, help=history.__doc__)
    subparser.add_argument("package", metavar="package", nargs="*", help="package name")
    subparser.set_defaults(cmd="history")

    # list
    subparser = subparsers.add_parser("list", help="List registered migrations.")
    subparser.set_defaults(cmd="list")

    # parse
    args = parser.parse_args()

    # bootstrap pyramid
    env = scripts.bootstrap(args.config)

    if args.cmd == "current":
        print("")
        if not args.package:
            args.package = ptah.get_cfg_storage(MIGRATION_ID).keys()

        for pkg in args.package:
            current(pkg)

    if args.cmd == "revision":
        if args.revid:
            for ch in ",.;-":
                if ch in args.revid:
                    print("Revision id contains forbidden characters")
                    ptah.shutdown()
                    return

        revision(args.package, args.revid, args.message)

    if args.cmd == "upgrade":
        # create db schemas
        create_db_schema(env["registry"], False)

        for pkg in args.package:
            upgrade(pkg)

    if args.cmd == "history":
        if not args.package:
            args.package = ptah.get_cfg_storage(MIGRATION_ID).keys()

        for pkg in args.package:
            history(pkg)

    if args.cmd == "list":
        list_migrations(env["registry"])

    ptah.shutdown()