GithubHelp home page GithubHelp logo

modoboa / modoboa-pfxadmin-migrate Goto Github PK

View Code? Open in Web Editor NEW
10.0 6.0 8.0 33 KB

A script to migrate from PostfixAdmin to Modoboa

License: MIT License

Python 100.00%
modoboa postfixadmin migration email hosting

modoboa-pfxadmin-migrate's Introduction

modoboa-pfxadmin-migrate

Code Health

A script to migrate from PostfixAdmin to Modoboa. It has been tested against versions 2.3.3 and upper.

Note

This script is only suitable for a new Modoboa installation.

Installation

Install this extension system-wide or inside a virtual environment by running the following command:

$ pip install modoboa-pfxadmin-migrate

Edit the settings.py file of your modoboa instance and add modoboa_pfxadmin_migrate inside the MODOBOA_APPS variable like this:

MODOBOA_APPS = (

  # End of list
  'modoboa_pfxadmin_migrate',
)

Then, add a new database connection named pfxadmin into the DATABASES variable corresponding to your PostfixAdmin setup:

DATABASES = {
    "default" : {
        # default connection definition
    },
    "pfxadmin" : {
        "ENGINE" : "<engine>",
        "NAME" : "<database name>",
        "USER" : "<database user>",
        "PASSWORD" : "<user password>",
    }  
}

This connection should correspond to the one defined in PostfixAdmin's configuration file.

Run the script

You are now ready to start the migration so run the following commands:

$ cd <modoboa_instance_dir>
$ python manage.py migrate_from_postfixadmin -s <password scheme>

<password scheme> must be replaced by the scheme used within postfixadmin (crypt most of the time).

Depending on how many domains/mailboxes your existing setup contains, the migration can be long. Just wait for the script's ending.

The procedure is over, edit the settings.py file and:

  • remove the pfxadmin database connection from the DATABASES variable
  • remove 'modoboa_pfxadmin_migrate' from the MODOBOA_APPS variable

You should be able to connect to Modoboa using the same credentials you were using to connect to PostfixAdmin.

modoboa-pfxadmin-migrate's People

Contributors

dependabot-preview[bot] avatar sebageek avatar tonioo avatar tuxis-ie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

modoboa-pfxadmin-migrate's Issues

pip install failed

I try to install mpfxadmin-migrate and it fails.

I am using the modoboa virtual machine.

Logged as root.

cd /root
pip install modoboa-pfxadmin-migrate
screen2

Here is the log :

root@modoboa:~# more /root/.pip/pip.log 
------------------------------------------------------------
/usr/bin/pip run on Thu Nov 12 02:14:23 2015
Downloading/unpacking modoboa-pfxadmin-migrate
  Getting page http://pypi.python.org/simple/modoboa-pfxadmin-migrate
  Could not fetch URL http://pypi.python.org/simple/modoboa-pfxadmin-migrate: HTTP Error 404: Not Found
  Will skip URL http://pypi.python.org/simple/modoboa-pfxadmin-migrate when looking for download links for modoboa-pfxadmin-migrate
  Getting page http://pypi.python.org/simple/
  URLs to search for versions for modoboa-pfxadmin-migrate:
  * http://pypi.python.org/simple/modoboa-pfxadmin-migrate/
  Getting page http://pypi.python.org/simple/modoboa-pfxadmin-migrate/
  Could not fetch URL http://pypi.python.org/simple/modoboa-pfxadmin-migrate/: HTTP Error 404: Not Found
  Will skip URL http://pypi.python.org/simple/modoboa-pfxadmin-migrate/ when looking for download links for modoboa-pfxadmin-migrate
  Could not find any downloads that satisfy the requirement modoboa-pfxadmin-migrate
No distributions at all found for modoboa-pfxadmin-migrate
Exception information:
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.6/pip/basecommand.py", line 120, in main
    self.run(options, args)
  File "/usr/lib/pymodules/python2.6/pip/commands/install.py", line 161, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/lib/pymodules/python2.6/pip/req.py", line 872, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/usr/lib/pymodules/python2.6/pip/index.py", line 116, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for modoboa-pfxadmin-migrate

of course, network is working. I can ping pypi.python.org

Migration fails with "TypeError: save() got an unexpected keyword argument 'ext_rcpts'"

My postfix version: 2.3.5

Migration fails with the error "TypeError: save() got an unexpected keyword argument 'ext_rcpts'"

Stacktrace:

Migrating domain example.com
Migrating domain aliases
Migrating mailboxes
Migrating mailbox aliases
Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(_args, *_options.dict)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute
output = self.handle(_args, *_options)
File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate-1.0.0-py2.7.egg/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 293, in handle
self._do_migration(options)
File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate-1.0.0-py2.7.egg/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 283, in _do_migration
self._migrate_domain(pf_domain, options, creator)
File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate-1.0.0-py2.7.egg/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 203, in _migrate_domain
self._migrate_mailbox_aliases(newdom, options, creator)
File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate-1.0.0-py2.7.egg/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 162, in _migrate_mailbox_aliases
using=options["_to"]
File "/usr/local/lib/python2.7/dist-packages/modoboa_admin/models/base.py", line 76, in save
super(AdminObject, self).save(_args, *_kwargs)
TypeError: save() got an unexpected keyword argument 'ext_rcpts'

ImportError: No module named callbacks

Getting error when running migrate_from_postfixadmin command:

python manage.py migrate_from_postfixadmin -s plain
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 359, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 208, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 40, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 45, in <module>
    from modoboa.admin.callbacks import grant_access_to_all_objects
ImportError: No module named callbacks

Migration Crash

I tried to migrate a Postfixadmin database to Modoboa but the procedure crashes with the following stack trace:
Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 353, in execute_from_command_line
utility.execute()
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(_args, *_cmd_options)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(_args, *_options)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 288, in handle
self._do_migration(options)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 278, in _do_migration
self._migrate_domain(pf_domain, options, creator)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 199, in _migrate_domain
self._migrate_admins(options, creator, pf_domain, newdom)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 235, in _migrate_admins
if "SimpleUsers" == user.group:
AttributeError: 'User' object has no attribute 'group'

Script fails while importing a user

Hello there,

i created a fresh install of modoboa and created a database on the localhost and included the database from the pfxadmin-server.

It starts to work fine, but it finishes with the following:

--- snip here ---

Migrating domain domain.de
Migrating domain aliases
Migrating mailboxes
Traceback (most recent call last):
File "manage.py", line 22, in
execute_from_command_line(sys.argv)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 364, in execute_from_command_line
utility.execute()
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 356, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute
output = self.handle(*args, **options)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 290, in handle
self._do_migration(options)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 282, in _do_migration
self._migrate_domain(pf_domain, options, creator)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 198, in _migrate_domain
self._migrate_mailboxes(newdom, options, creator)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 178, in _migrate_mailboxes
new_user.save(creator=creator, using=options["_to"])
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa/core/models.py", line 297, in save
super(User, self).save(*args, **kwargs)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/contrib/auth/base_user.py", line 80, in save
super(AbstractBaseUser, self).save(*args, **kwargs)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/models/base.py", line 808, in save
force_update=force_update, update_fields=update_fields)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/models/base.py", line 838, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/models/base.py", line 924, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/models/base.py", line 963, in _do_insert
using=using, raw=raw)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/models/query.py", line 1079, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1112, in execute_sql
cursor.execute(sql, params)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 101, in execute
return self.cursor.execute(query, args)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 206, in execute
res = self._query(query)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 312, in _query
db.query(q)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 224, in query
_mysql.connection.query(self, query)
django.db.utils.IntegrityError: (1062, "Duplicate entry '[email protected]' for key 'username'")
---- snip here ---

There is only one user with this log in, but with a couple of aliases.

And this user is also superadmin in the admin-table.

If i delete the user in the admin-table the script stops directly.

If needed, i could provide access to the server.

pfxadmin is Version 3.1

Maybe the database-structure changed a bit?

Any help appreciated!

Thanks in advance

Greetings

Marcel

Script failed if quota is set

If at least one mailbox has a quota defined in the old postfixadmin install, the script failed with the following error:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 290, in handle
    self._do_migration(options)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 282, in _do_migration
    self._migrate_domain(pf_domain, options, creator)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 198, in _migrate_domain
    self._migrate_mailboxes(newdom, options, creator)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 185, in _migrate_mailboxes
    new_mb.set_quota(old_mb.quota / 1024000, override_rules=True)
  File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa/admin/models/mailbox.py", line 265, in set_quota
    raise lib_exceptions.BadRequest(_("Domain quota exceeded"))
modoboa.lib.exceptions.BadRequest: Domain quota exceeded

(Fresh modoboa 1.10.5.dev8+gf604aacb install, without any domain/mailbox defined)

By setting quota to 0 on all Mailboxes in postfixadmin, migration is OK.

Script Failure on Ubuntu 20.04 LTS New Modoboa Install

I was asked several months ago to evaluate email solutions for a small local company. After evaluating several options, I settled on Modoboa as a replacement for their current Postfix/Dovecot system. It took a lot of convincing. The most important issue for them was whether I could migrate their current email accounts and mail to Modoboa. I understand that there are two scripts, modoboa-pfxadmin-migrate and modoboa-imap-migration. I chose to use modoboa-pfxadmin-migrate. I followed the instructions for installation and usage. I immediately encountered errors.

Ubuntu 20.04 LTS uses Python3. The command "python" is aliased to "python3"

Upon executing the script, I received the following errors;

root@sensa-mx-1:/srv/modoboa/instance# python manage.py migrate_from_postfixadmin -s crypt
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/django/core/management/init.py", line 204, in fetch_command
app_name = commands[subcommand]
KeyError: 'migrate_from_postfixadmin'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "manage.py", line 21, in
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.8/dist-packages/django/core/management/init.py", line 381, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.8/dist-packages/django/core/management/init.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.8/dist-packages/django/core/management/init.py", line 211, in fetch_command
settings.INSTALLED_APPS
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 79, in getattr
self._setup(name)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 66, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.8/dist-packages/django/conf/init.py", line 157, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 783, in exec_module
File "", line 219, in _call_with_frames_removed
File "/srv/modoboa/instance/instance/settings.py", line 372, in
from modoboa_amavis import settings as modoboa_amavis_settings
ModuleNotFoundError: No module named 'modoboa_amavis'

Domain matching query does not exist

Trying to run migration script on mysql database - after last domain I get error:

Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 353, in execute_from_command_line
utility.execute()
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 288, in handle
self._do_migration(options)
File "/srv/modoboa/env/local/lib/python2.7/site-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 282, in _do_migration
options["_from"]).get(domain='ALL')
File "/srv/modoboa/env/local/lib/python2.7/site-packages/django/db/models/query.py", line 387, in get
self.model._meta.object_name
modoboa_pfxadmin_migrate.models.DoesNotExist: Domain matching query does not exist.


Latest version of modoboa. Ubuntu 16.04

Migration fails with "Cannot resolve keyword u'domain' into field. Choices are: active, created, modified, password, username"

Migration fails with the error / stacktrace below. I'm using Postfixadmin 2.3.7.

Migrating domain example.com
Migrating domain aliases
Migrating mailboxes
Migrating mailbox aliases
Migrating administrators
Traceback (most recent call last):
File "./manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/lib/python2.7/dist-packages/django/core/management/init.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/dist-packages/django/core/management/init.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(_args, *_options.dict)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute
output = self.handle(_args, _options)
File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate-1.0.0-py2.7.egg/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 291, in handle
self._do_migration(options)
File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate-1.0.0-py2.7.egg/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 281, in _do_migration
self._migrate_domain(pf_domain, options, creator)
File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate-1.0.0-py2.7.egg/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 204, in _migrate_domain
self._migrate_admins(options, creator, pf_domain, newdom)
File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate-1.0.0-py2.7.egg/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 221, in _migrate_admins
for old_admin in pf_domain.admins.all():
File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 191, in all
return self.get_queryset()
File "/usr/lib/python2.7/dist-packages/django/db/models/fields/related.py", line 885, in get_queryset
return qs._next_is_sticky().filter(
_self.core_filters)
File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 691, in filter
return self._filter_or_exclude(False, *args, *_kwargs)
File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 709, in _filter_or_exclude
clone.query.add_q(Q(_args, *_kwargs))
File "/usr/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1331, in add_q
clause, require_inner = self._add_q(where_part, self.used_aliases)
File "/usr/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1358, in _add_q
current_negated=current_negated, connector=connector)
File "/usr/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1182, in build_filter
lookups, parts, reffed_aggregate = self.solve_lookup_type(arg)
File "/usr/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1120, in solve_lookup_type
_, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File "/usr/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1427, in names_to_path
self.raise_field_error(opts, name)
File "/usr/lib/python2.7/dist-packages/django/db/models/sql/query.py", line 1433, in raise_field_error
"Choices are: %s" % (name, ", ".join(available)))
django.core.exceptions.FieldError: Cannot resolve keyword u'domain' into field. Choices are: active, created, modified, password, username

AttributeError: 'User' object has no attribute 'group'

Using Postfixadmin v3 and Modoboa from a pip install, the script starts importing domains and then give this error:

Migrating domain xxx.com
	Migrating domain aliases
	Migrating mailboxes
	Migrating mailbox aliases
	Migrating administrators
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 345, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 348, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 399, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 288, in handle
    self._do_migration(options)
  File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 278, in _do_migration
    self._migrate_domain(pf_domain, options, creator)
  File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 199, in _migrate_domain
    self._migrate_admins(options, creator, pf_domain, newdom)
  File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 235, in _migrate_admins
    if "SimpleUsers" == user.group:
AttributeError: 'User' object has no attribute 'group'```

Previously imported domains and mailboxes don't show up in Modoboa web admin.

Crash with "Duplicate entry" error

The script starts migrating several domains and then crashes:

Migrating domain example.org
	Migrating domain aliases
	Migrating mailboxes
	Migrating mailbox aliases
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 345, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 348, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 399, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 288, in handle
    self._do_migration(options)
  File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 278, in _do_migration
    self._migrate_domain(pf_domain, options, creator)
  File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 198, in _migrate_domain
    self._migrate_mailbox_aliases(newdom, options, creator)
  File "/usr/local/lib/python2.7/dist-packages/modoboa_pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py", line 160, in _migrate_mailbox_aliases
    options["_to"]).bulk_create(to_create)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 450, in bulk_create
    self._batched_insert(objs_without_pk, fields, batch_size)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 1056, in _batched_insert
    using=self.db)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 122, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 1039, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 1060, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 95, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 112, in execute
    return self.cursor.execute(query, args)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
django.db.utils.IntegrityError: (1062, "Duplicate entry '1628-1148' for key 'modoboa_admin_aliasrecipient_alias_id_c005be7e_uniq'")

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.