pub enum Change {
Show 14 variants
CreateRole {
name: String,
state: RoleState,
},
AlterRole {
name: String,
attributes: Vec<RoleAttribute>,
},
SetComment {
name: String,
comment: Option<String>,
},
Grant {
role: String,
privileges: BTreeSet<Privilege>,
object_type: ObjectType,
schema: Option<String>,
name: Option<String>,
},
Revoke {
role: String,
privileges: BTreeSet<Privilege>,
object_type: ObjectType,
schema: Option<String>,
name: Option<String>,
},
SetDefaultPrivilege {
owner: String,
schema: String,
on_type: ObjectType,
grantee: String,
privileges: BTreeSet<Privilege>,
},
RevokeDefaultPrivilege {
owner: String,
schema: String,
on_type: ObjectType,
grantee: String,
privileges: BTreeSet<Privilege>,
},
AddMember {
role: String,
member: String,
inherit: bool,
admin: bool,
},
RemoveMember {
role: String,
member: String,
},
ReassignOwned {
from_role: String,
to_role: String,
},
DropOwned {
role: String,
},
TerminateSessions {
role: String,
},
SetPassword {
name: String,
password: String,
},
DropRole {
name: String,
},
}Expand description
A single change to be applied to the database.
Changes are produced in dependency order by diff:
- Create roles (before granting anything to them)
- Alter roles (attribute changes)
- Grant privileges
- Set default privileges
- Remove memberships
- Add memberships
- Revoke default privileges
- Revoke privileges
- Drop roles (after revoking everything from them)
Variants§
CreateRole
Create a new role with the given attributes.
AlterRole
Alter an existing role’s attributes.
SetComment
Update a role’s comment (via COMMENT ON ROLE).
Grant
Grant privileges on an object to a role.
Fields
object_type: ObjectTypeRevoke
Revoke privileges on an object from a role.
Fields
object_type: ObjectTypeSetDefaultPrivilege
Set default privileges (ALTER DEFAULT PRIVILEGES … GRANT …).
Fields
on_type: ObjectTypeRevokeDefaultPrivilege
Revoke default privileges (ALTER DEFAULT PRIVILEGES … REVOKE …).
Fields
on_type: ObjectTypeAddMember
Grant membership (GRANT role TO member).
RemoveMember
Revoke membership (REVOKE role FROM member).
ReassignOwned
Reassign owned objects to a successor role before drop.
DropOwned
Drop owned objects and revoke remaining privileges before drop.
TerminateSessions
Terminate other active sessions before dropping a role.
SetPassword
Set a role’s password (from an environment variable at apply time).
This change is injected by inject_password_changes after the core
diff engine runs. The diff engine itself does not handle passwords
because they cannot be read back from the database for comparison.
DropRole
Drop a role.
Trait Implementations§
impl Eq for Change
impl StructuralPartialEq for Change
Auto Trait Implementations§
impl Freeze for Change
impl RefUnwindSafe for Change
impl Send for Change
impl Sync for Change
impl Unpin for Change
impl UnsafeUnpin for Change
impl UnwindSafe for Change
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.