Django-postgres-extra package ENGIN error (table Partitioning) - django

i have two large tables in my database that change every day at 6AM , and I want to archive the most recent month , i decided to use table partitioning to store every day's data in partition , i installed django-postgres-extra and i'm getting this error when i run the server
note that :
i have two databases one for users , and the other one 'prev' for my app
the tables that I want to archive are in prev
I'm using the extension PostGis on 'prev'
can you help me please ?
here is my settings.py :
> DATABASES = {
> 'default':{
> },
> 'prev': {
> 'ENGINE':'psqlextra.backend',
> 'NAME': '[database_name]',
> 'USER': '[username]',
> 'PASSWORD': '[Password]',
> 'HOST': 'localhost',
> },
> 'users': {
> 'ENGINE': 'django.db.backends.postgresql',
> 'NAME':'[database_name]',
> 'USER': '[username]',
> 'PASSWORD': '[Password]',
> 'HOST': '127.0.0.1',
>
} } POSTGRES_EXTRA_DB_BACKEND_BASE = 'django.contrib.db.backends.postgis'
DATABASE_ROUTERS=['user.router.AuthRouter' ,'prevision.router.PrevRouter']
error :
$ python manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/usr/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run
autoreload.raise_last_exception()
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception
raise _exception[1]
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 398, in execute
autoreload.check_errors(django.setup)()
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/django/apps/registry.py", line 116, in populate
app_config.import_models()
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/django/apps/config.py", line 304, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 848, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/psqlextra/models/__init__.py", line 1, in <module>
from .base import PostgresModel
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/psqlextra/models/base.py", line 6, in <module>
class PostgresModel(models.Model):
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/psqlextra/models/base.py", line 13, in PostgresModel
objects = PostgresManager()
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/psqlextra/manager/manager.py", line 23, in __init__
[
File "/home/user/Bureau/vig/backend/venv/lib/python3.8/site-packages/psqlextra/manager/manager.py", line 26, in <listcomp>
if "psqlextra" in db_settings["ENGINE"]
KeyError: 'ENGINE'
and if you have any other solution (package maybe) to solve the archiving problem please suggest it to me
Thank You .

Related

error when giving mysql as the database (engine) in Django

In my web application which is being made in Django (Django==3.2), I am trying to use mysql as the Database, but in the settings.py, when I tried to give mysql as the engine :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': DB_NAME,
'HOST': DB_HOST,
'USER': DB_HOST,
'PASSWORD': DB_PASS
}
}
and then tried ruserver command, I got the following error:
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/db/utils.py", line 111, in load_backend
return import_module('%s.base' % backend_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'django.db.backends.mysql'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 110, in inner_run
autoreload.raise_last_exception()
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception
raise _exception[1]
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 375, in execute
autoreload.check_errors(django.setup)()
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/apps/config.py", line 301, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/contrib/auth/models.py", line 3, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 48, in <module>
class AbstractBaseUser(models.Model):
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/db/models/base.py", line 122, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/db/models/base.py", line 326, in add_to_class
value.contribute_to_class(cls, name)
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/db/models/options.py", line 207, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/utils/connection.py", line 15, in __getattr__
return getattr(self._connections[self._alias], item)
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/utils/connection.py", line 62, in __getitem__
conn = self.create_connection(alias)
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/db/utils.py", line 204, in create_connection
backend = load_backend(db['ENGINE'])
File "/home/john/PycharmProjects/social_network/venv/lib/python3.6/site-packages/django/db/utils.py", line 128, in load_backend
) from e_user
django.core.exceptions.ImproperlyConfigured: 'django.db.backends.mysql' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one of:
'oracle', 'postgresql', 'sqlite3'
do you know how I can give mysql as the engine in the settings.py? I tried the following but got the same error:
mysql.connector.django
try to install : (mysqlclient) pip install mysqlclient in order to use MYSQL as the backend for Django apps ; you will need the mysqlclient library and in your settings.py file do this :
#settings.py
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME' : 'mydatabase',
'USER' : 'myUser',
'PASSWORD' : 'My_passowrd',
'HOST' : 'localhost',
'PORT' : '' ,
}
}
i hope it helped you

running django project on a other machine, giving error

I would like to run my django project on a other machine.
When running python3 manage.py runserver i get the error:
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/usr/lib/python3.9/threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3/dist-packages/django/utils/autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "/usr/lib/python3/dist-packages/django/core/management/commands/runserver.py", line 109, in inner_run
autoreload.raise_last_exception()
File "/usr/lib/python3/dist-packages/django/utils/autoreload.py", line 77, in raise_last_exception
raise _exception[1]
File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 337, in execute
autoreload.check_errors(django.setup)()
File "/usr/lib/python3/dist-packages/django/utils/autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "/usr/lib/python3/dist-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/lib/python3/dist-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/usr/lib/python3/dist-packages/django/apps/config.py", line 211, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 790, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/django/contrib/auth/models.py", line 2, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/usr/lib/python3/dist-packages/django/contrib/auth/base_user.py", line 47, in <module>
class AbstractBaseUser(models.Model):
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 117, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 321, in add_to_class
value.contribute_to_class(cls, name)
File "/usr/lib/python3/dist-packages/django/db/models/options.py", line 204, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/usr/lib/python3/dist-packages/django/db/__init__.py", line 28, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/usr/lib/python3/dist-packages/django/db/utils.py", line 202, in __getitem__
conn = backend.DatabaseWrapper(db, alias)
File "/homes/bvink/.local/lib/python3.9/site-packages/mysql/connector/django/base.py", line 336, in __init__
super(DatabaseWrapper, self).__init__(*args, **kwargs)
File "/usr/lib/python3/dist-packages/django/db/backends/base/base.py", line 102, in __init__
self.client = self.client_class(self)
TypeError: 'NoneType' object is not callable
I can access mysql on the this 'other' machine.
Can someone help me get the project running?
EDIT:
my database section in settings.py
DATABASES = {
'default': {
'ENGINE': 'mysql.connector.django',
'NAME': 'Bvink',
'USER': 'bvink',
'PASSWORD': 'XXXXX',
'HOST': 'mariadb',
'PORT': '3306',
}
}
I also get this error when i type python3 manage.py makemigrations, migrate and shell

Syntax error while saving postgresql server info in setting.py Django

I am getting Syntax error while saving postgresql server information in setting.py file of Django and running server. Below are the settings i am saving in setting.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'webportal',
'USER': 'postgres',
'PASSWORD': 'password'
'HOST':'localhost',
'PORT' : '5432',
}
}
and the error is :-
\Django_Project\project2\WebPortal-Project>manage.py runserver
Traceback (most recent call last):
File "C:\Users\AJ!!\Dropbox\Django_Project\project2\WebPortal-Project\manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\AJ!!\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
utility.execute()
File "C:\Users\AJ!!\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\management\__init__.py", line 317, in execute
settings.INSTALLED_APPS
File "C:\Users\AJ!!\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\conf\__init__.py", line 56, in __getattr__
self._setup(name)
File "C:\Users\AJ!!\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\conf\__init__.py", line 43, in _setup
self._wrapped = Settings(settings_module)
File "C:\Users\AJ!!\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\conf\__init__.py", line 106, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Users\AJ!!\AppData\Local\Programs\Python\Python36-32\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 674, in exec_module
File "<frozen importlib._bootstrap_external>", line 781, in get_code
File "<frozen importlib._bootstrap_external>", line 741, in source_to_code
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "C:\Users\AJ!!\Dropbox\Django_Project\project2\WebPortal-Project\WebPortal\settings.py", line 83
'HOST':'localhost',
^
SyntaxError: invalid syntax
Could you please help me figure out what is this syntax error appears.
You are missing a comma after the 'PASSWORD': 'password' line.

How does one get Oracle's Python MySQL driver to work with django 1.11?

I installed on ubuntu 16.04 django 1.11 using pip3 and then installed the oracle mysql-connector-python. Why is this error occurring? How can I resolve it? According to the tutorial migrations will run even if there are no models defined.
Installed by using pip3
pip3 install --egg http://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-2.1.6.zip
My database configuration
DATABASES = {
'default': {
'NAME': 'user_data',
'ENGINE': 'mysql.connector.django',
'USER': 'mysql_user',
'PASSWORD': 'priv4te',
'OPTIONS': {
'autocommit': True,
},
}
}
The command that I ran
python3 /home/django/workspace/mysite/manage.py migrate
The Error
Traceback (most recent call last):
File "/home/django/workspace/mysite/manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/home/django/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
utility.execute()
File "/home/django/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 337, in execute
django.setup()
File "/home/django/.local/lib/python3.5/site-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/django/.local/lib/python3.5/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models()
File "/home/django/.local/lib/python3.5/site-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 665, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/home/django/.local/lib/python3.5/site-packages/django/contrib/auth/models.py", line 4, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/home/django/.local/lib/python3.5/site-packages/django/contrib/auth/base_user.py", line 52, in <module>
class AbstractBaseUser(models.Model):
File "/home/django/.local/lib/python3.5/site-packages/django/db/models/base.py", line 124, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/home/django/.local/lib/python3.5/site-packages/django/db/models/base.py", line 330, in add_to_class
value.contribute_to_class(cls, name)
File "/home/django/.local/lib/python3.5/site-packages/django/db/models/options.py", line 214, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/home/django/.local/lib/python3.5/site-packages/django/db/__init__.py", line 33, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/django/.local/lib/python3.5/site-packages/django/db/utils.py", line 212, in __getitem__
conn = backend.DatabaseWrapper(db, alias)
File "/home/django/.local/lib/python3.5/site-packages/mysql/connector/django/base.py", line 336, in __init__
super(DatabaseWrapper, self).__init__(*args, **kwargs)
File "/home/django/.local/lib/python3.5/site-packages/django/db/backends/base/base.py", line 96, in __init__
self.client = self.client_class(self)
TypeError: 'NoneType' object is not callable
Finished "/home/django/workspace/mysite/manage.py migrate" execution.
Found this question as I'm having the same issue. There is apparently a known bug.
https://bugs.mysql.com/bug.php?id=86105

Delete Django Migrations

I changed databases from mysql to postgre. Since there was no data in teh db yet, I just deleted the migrations folders for each of the apps. When I ran makemigrations afterwards though, I got this error:
/theme/admin.py", line 2, in <module>
from models import theme, theme_file
ImportError: No module named 'models'
Everything worked fine before, nothing changed in the code other than the migrations folders being cleaned.
Any ideas?
/Users/jl/.virtualenvs/bolts3/bin/python /Users/jl/Desktop/Bolts/manage.py runserver 8000
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x108e15ae8>
Traceback (most recent call last):
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 113, in inner_run
autoreload.raise_last_exception()
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/autoreload.py", line 249, in raise_last_exception
six.reraise(*_exception)
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/apps/registry.py", line 115, in populate
app_config.ready()
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/contrib/admin/apps.py", line 23, in ready
self.module.autodiscover()
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/contrib/admin/__init__.py", line 26, in autodiscover
autodiscover_modules('admin', register_to=site)
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/site-packages/django/utils/module_loading.py", line 50, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "/Users/jl/.virtualenvs/bolts3/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 662, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/Users/jl/Desktop/Bolts/theme/admin.py", line 2, in <module>
from models import theme, theme_file
ImportError: No module named 'models'
Just deleting the migrations will not fix the issue when you change database types. In your settings.py file, you must change the default database settings to point to your new PostgreSQL database, and also specify the schema, db user and password etc. Perhaps you haven't done this?
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
See: https://docs.djangoproject.com/en/1.10/ref/settings/
Mmmm it would seem like you deleted a __init__.py file by accident?
Remember that a folder must have such file to be a python module, and when a folder it's a python module you can import from it.