anchor.diff:        };
   
         initialDatabases = mkOption {
  +        type = types.listOf (types.submodule {
  +          options = {
  +            name = mkOption {
  +              type = types.str;
  +              description = ''
  +                The name of the database to create.
  +              '';
  +            };
  +            schema = mkOption {
  +              type = types.nullOr types.path;
  +              default = null;
  +              description = ''
  +                The initial schema of the database; if null (the default),
  +                an empty database is created.
  +              '';
  +            };
  +          };
  +        });
           default = [];
           description = ''
             List of database names and their initial schemas that should be used to create databases on the first startup
  
positive.code:       };
  
        initialScript = mkOption {
          default = null;
          description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database";
        };
  
        ensureDatabases = mkOption {
          default = [];
          description = ''
            Ensures that the specified databases exist.
  
negative.code:           option is changed. This means that users created and permissions assigned once through this option or
            otherwise have to be removed manually.
          '';
          example = literalExample ''
            [
              {
                name = "nextcloud";
                ensurePermissions = {
                  "nextcloud.*" = "ALL PRIVILEGES";
                };
              }
              {
                name = "backup";
                ensurePermissions = {
                  "*.*" = "SELECT, LOCK TABLES";
                };
              }
            ]
          '';
        };
  
        # FIXME: remove this option; it's a really bad idea.
  