mirror of
https://github.com/djrobstep/migra.git
synced 2024-09-11 13:56:05 +03:00
Add support for roles.
This commit is contained in:
parent
0298606bf5
commit
6a402bc808
@ -19,6 +19,8 @@ THINGS = [
|
||||
"collations",
|
||||
"rlspolicies",
|
||||
"triggers",
|
||||
"roles",
|
||||
"memberships",
|
||||
]
|
||||
PK = "PRIMARY KEY"
|
||||
|
||||
|
@ -48,6 +48,13 @@ def parse_args(args):
|
||||
default=False,
|
||||
help="Also output privilege differences (ie. grant/revoke statements)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--with-roles",
|
||||
dest="with_roles",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help='Also output "create/drop role" statements.',
|
||||
)
|
||||
parser.add_argument(
|
||||
"--force-utf8",
|
||||
dest="force_utf8",
|
||||
@ -75,7 +82,7 @@ def run(args, out=None, err=None):
|
||||
if args.create_extensions_only:
|
||||
m.add_extension_changes(drops=False)
|
||||
else:
|
||||
m.add_all_changes(privileges=args.with_privileges)
|
||||
m.add_all_changes(privileges=args.with_privileges, roles=args.with_roles)
|
||||
try:
|
||||
if m.statements:
|
||||
if args.force_utf8:
|
||||
|
@ -1,8 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from sqlbag import raw_execute
|
||||
|
||||
from schemainspect import DBInspector, get_inspector
|
||||
from sqlbag import raw_execute
|
||||
|
||||
from .changes import Changes
|
||||
from .statements import Statements
|
||||
@ -62,7 +61,13 @@ class Migration(object):
|
||||
if drops:
|
||||
self.add(self.changes.extensions(drops_only=True))
|
||||
|
||||
def add_all_changes(self, privileges=False):
|
||||
def add_all_changes(self, privileges=False, roles=False):
|
||||
if roles:
|
||||
if privileges:
|
||||
self.add(self.changes.memberships(drops_only=True))
|
||||
self.add(self.changes.roles(drops_only=True))
|
||||
self.add(self.changes.roles(creations_only=True))
|
||||
|
||||
self.add(self.changes.schemas(creations_only=True))
|
||||
|
||||
self.add(self.changes.extensions(creations_only=True))
|
||||
@ -87,6 +92,8 @@ class Migration(object):
|
||||
self.add(self.changes.non_pk_constraints(creations_only=True))
|
||||
if privileges:
|
||||
self.add(self.changes.privileges(creations_only=True))
|
||||
if roles:
|
||||
self.add(self.changes.memberships(creations_only=True))
|
||||
self.add(self.changes.rlspolicies(creations_only=True))
|
||||
self.add(self.changes.triggers(creations_only=True))
|
||||
self.add(self.changes.collations(drops_only=True))
|
||||
|
Loading…
Reference in New Issue
Block a user