Seite 1 von 1

SAP HANA Backend Django Framework

Verfasst: Montag 30. April 2018, 17:32
von Lessly
Hallo zusammen,

ich möchte gerne SAP HANA als Datenbankbackend in Django einbinden.

Zum Testen habe ich mir eine VM mit der Hana Express erstellt und kann die HANA auch über connection = pyhdb.connect erreichen.

Ich möchte Hana allerdings als Ersatz für sqlite verwenden.

Ich habe das Backend von Mathebox verwendet, komme allerdings nicht weiter.

https://github.com/mathebox/django_hana_pyhdb

Es erscheint immer die Meldung, dass Hana als Backend nicht erlaubt ist.

Kennst jemand das Problem und kann mir helfen?

Vielen Dank für eure Hilfe.

Viele Grüße

Lessly

Re: SAP HANA Backend Django Framework

Verfasst: Montag 30. April 2018, 17:55
von noisefloor
Hallo,

bist du sicher, dass Hana als 1. DB für Django erlaubt ist? Django speichert ja eine ganze Reihe "Verwaltungssachen" für sich selber in der DB, dass müsste das Hana bzw. das Django-Hana Modul ja auch unterstützen...

Hast du mal probiert, was passiert, wenn du Hana "nur" als 2. DB einrichtest, wo dann "nur" deine Models drauf zugreifen? Und die Verwaltungsdaten liegen weiter in SQLite oder PostgreSQL?

Gruß, noisefloor

Re: SAP HANA Backend Django Framework

Verfasst: Montag 30. April 2018, 18:03
von noisefloor
Nachtrag:
* Wann kommt die Fehlermeldung, also nach welchem Befehl?
* Poste mal bitte die komplette Fehlermeldung.

Gruß, noisefloor

Re: SAP HANA Backend Django Framework

Verfasst: Montag 30. April 2018, 22:41
von Lessly
Hallo noisefloor,

vielen Dank für deine Hilfe.

Ich arbeite noch nicht sehr lange mit Django. Mit SQLite hat bisher alles immer gut funktioniert.

Ich habe bezüglich Hana nichts Gegenteiliges gefunden.

Wie kann ich den in Django eine zweite Datenbank einführen?

Die folgende Meldung kommt direkt nach dem Ausführen der manage.py also ohne das makemigrations ausgeführt habe.

Vielen Dank für deine Hilfe.

Hier die Fehlermeldung

C:\ProgramData\Anaconda\envs\DjangoApp\python.exe K:/PyCharmProjekte/PyCharm-Code/Django/TestHanaDjango/manage.py
Traceback (most recent call last):
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\db\utils.py", line 110, in load_backend
return import_module('%s.base' % backend_name)
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\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_hana'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "K:/PyCharmProjekte/PyCharm-Code/Django/TestHanaDjango/manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
utility.execute()
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\core\management\__init__.py", line 347, in execute
django.setup()
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\apps\registry.py", line 112, in populate
app_config.import_models()
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\apps\config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\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 "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\contrib\auth\models.py", line 2, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\contrib\auth\base_user.py", line 47, in <module>
class AbstractBaseUser(models.Model):
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\db\models\base.py", line 114, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\db\models\base.py", line 315, in add_to_class
value.contribute_to_class(cls, name)
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\db\models\options.py", line 205, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\db\__init__.py", line 33, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\db\utils.py", line 202, in __getitem__
backend = load_backend(db['ENGINE'])
File "C:\ProgramData\Anaconda\envs\DjangoApp\lib\site-packages\django\db\utils.py", line 125, in load_backend
) from e_user
django.core.exceptions.ImproperlyConfigured: 'django_hana' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
'mysql', 'oracle', 'postgresql', 'sqlite3'

Process finished with exit code 1

Viele Grüße
Lessly

Re: SAP HANA Backend Django Framework

Verfasst: Dienstag 1. Mai 2018, 02:36
von snafu
Hast du daran gedacht, in der settings.py als Engine "django_hana" einzutragen? Nutzt du die Dekoratoren @column_store bzw @row_store für deine Models?

Re: SAP HANA Backend Django Framework

Verfasst: Dienstag 1. Mai 2018, 20:38
von noisefloor
Hallo,

wie man mehr als eine DB in Django nutzt ist in der Doku erklärt: https://docs.djangoproject.com/en/1.11/ ... /multi-db/

Wobei du erst Mal das von snafu gesagte umsetzen solltest und HanaDB in Django einbinden. Wenn dann immer noch Fehler auftreten -> die Fehlermeldung bitte hier noch mal posten.

Gruß, noisefloor

Re: SAP HANA Backend Django Framework

Verfasst: Donnerstag 3. Mai 2018, 17:05
von DerKaktus
Hallo, ich habe das selbe Problem. Habe ebenfalls den bereits oben genannten Link verwendet, django_hana auch als engine angegeben und erhalte weiterhin folgende Fehlermeldung:
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x00000000052A6620>
Traceback (most recent call last):
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\db\utils.py", line 110, in load_backend
return import_module('%s.base' % backend_name)
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\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_hana'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\core\management\commands\runserver.py", line 120, in inner_run
self.check(display_num_errors=True)
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\core\management\base.py", line 364, in check
include_deployment_checks=include_deployment_checks,
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\core\management\base.py", line 351, in _run_checks
return checks.run_checks(**kwargs)
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\core\checks\registry.py", line 73, in run_checks
new_errors = check(app_configs=app_configs)
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\core\checks\model_checks.py", line 27, in check_all_models
errors.extend(model.check(**kwargs))
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\db\models\base.py", line 1202, in check
errors.extend(cls._check_long_column_names())
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\db\models\base.py", line 1615, in _check_long_column_names
connection = connections[db]
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\db\utils.py", line 202, in __getitem__
backend = load_backend(db['ENGINE'])
File "C:\Users\Kaktus\Anaconda3\envs\DjangoApp\lib\site-packages\django\db\utils.py", line 125, in load_backend
) from e_user
django.core.exceptions.ImproperlyConfigured: 'django_hana' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
'mysql', 'oracle', 'postgresql', 'sqlite3'

Werde weiterhin versuchen, das Thema zum laufen zu bringen, wäre für jeden Tipp wirklich dankbar!!!
Lg derKaktus

Re: SAP HANA Backend Django Framework

Verfasst: Donnerstag 3. Mai 2018, 18:06
von DasIch
Wenn du dir den Traceback anschaust ist das Problem eigentlich offensichtlich. Du hast django_hana nicht installiert (ImportError) und deswegen beschwert sich Django dass die Konfiguration nicht richtig ist (ImproperlyConfigured).

Sicher dass du django_hana korrekt in das anaconda DjangoApp environment installiert hast?

Re: SAP HANA Backend Django Framework

Verfasst: Donnerstag 3. Mai 2018, 19:28
von Lessly
Hallo zusammen,

ja hab ich.

Code: Alles auswählen

 In settings.py 

DATABASES = {
    'default': {
        'ENGINE': 'django_hana',
        'NAME': 'djhxe',
        'USER': 'SYSTEM',
        'PASSWORD': 'WI1RoBu2',
        'HOST': '192.168.178.22',
        'PORT': '39013'
    }
}
snafu hat geschrieben:Hast du daran gedacht, in der settings.py als Engine "django_hana" einzutragen? Nutzt du die Dekoratoren @column_store bzw @row_store für deine Models?

Re: SAP HANA Backend Django Framework

Verfasst: Donnerstag 3. Mai 2018, 20:43
von Lessly
Hallo zusammen,

@ snafu: ich hab es anhand der Github Anleitung gemacht und das Beispiel lediglich mal reinkopiert um alles zu testen:
https://github.com/mathebox/django_hana_pyhdb
snafu hat geschrieben:Hast du daran gedacht, in der settings.py als Engine "django_hana" einzutragen? Nutzt du die Dekoratoren @column_store bzw @row_store für deine Models?
Viele Dank für eure HIlfe.

Viele Grüße

Lessly

Re: SAP HANA Backend Django Framework

Verfasst: Freitag 4. Mai 2018, 12:25
von DerKaktus
Habe jetzt das Problem, dass der GeoManager in Django 2.0 fehlt. Gibt es hierfür eine Art WorkAround?

AttributeError: module 'django.contrib.gis.db.models' has no attribute 'GeoManager'

Vielen Dank für die Hilfe!

Lg DerKaktus

Re: SAP HANA Backend Django Framework

Verfasst: Samstag 5. Mai 2018, 19:35
von Lessly
Hallo zusammen,

bei mir läuft es jetzt. habe mit den Versionen von Django rumgespielt. Mit Django 1.10 klappt alles ohne Probleme.

Viele Grüße und vielen Dank für eure HIlfe
Lessly

Re: SAP HANA Backend Django Framework

Verfasst: Sonntag 6. Mai 2018, 19:49
von noisefloor
Hallo,

Django 1.10 ist seit Ende 2017 EOL und wird nicht mehr unterstützt... Das willst du produktiv eigentlich nicht mehr benutzen. 1.11 LTS wäre besser, das hat noch Support bis April 2020.

Gruß, noisefloor

Re: SAP HANA Backend Django Framework

Verfasst: Montag 4. Juni 2018, 21:06
von Lessly
Hallo zusammen,

nachdem ich nun etwas mehr Zeit habe, hab ich mich dazu entschlossen, doch auf die neuste Django Version zu wechseln.

Hat hier jemand vielleicht eine Lösung zum oben genannten Fehler. Es ist genau die selbe Fehlermeldung.

Danke für eure HIlfe.

Viele Grüße
Lessly