
Андрей
21.06.2019
13:40:07
class RoleEnum(enum.Enum):
teamlead = 1
project_manager = 2
account_manager = 3
deleivery_manager = 4
class User(db.Model):
tablename = 'g_user'
id = db.Column(db.BigInteger(), primary_key=True)
name = db.Column(db.String())
phone = db.Column(db.String())
user_role = db.Column(Enum(RoleEnum))
token = db.Column(db.String())
db - экземпляр Gino()
В гино почему- то не нашлось Enum (с точки зрения алембика), вырвал из алхимии напрямую

Tishka17
21.06.2019
13:40:25

Андрей
21.06.2019
13:40:44

Google

Андрей
21.06.2019
13:41:04
чорт, импорты не по пепу

Tishka17
21.06.2019
13:41:42
Хм. А постгресовый пробовал?
Из диалектов

Артём
21.06.2019
13:42:19

Андрей
21.06.2019
13:44:56

Tishka17
21.06.2019
13:44:59
The Enum type will make use of the backend’s native “ENUM” type if one is available; otherwise, it uses a VARCHAR datatype and produces a CHECK constraint. Use of the backend-native enum type can be disabled using the Enum.native_enum flag, and the production of the CHECK constraint is configurable using the Enum.create_constraint flag.

Артём
21.06.2019
13:45:07

Tishka17
21.06.2019
13:45:14

Андрей
21.06.2019
13:45:42

Tishka17
21.06.2019
13:46:13
а миграцию пересоздавал?

Katerina
21.06.2019
13:47:56
Добрый день!
Ищу Python-developer (уровень middle/senior).
Требования: опыт работы более 3 лет на крупных проектах в качестве разработчика.
Python (стандартные библиотеки)
Асинхронное программирование (будет плюсом).
Условия: ЗП обсуждается с успешным кандидатом (от 180 и выше, белая)
Оформление по ТК РФ
ДМС
Корпоративное обучение (тренинги, митапы, конференции)
Отличный коллектив, отсутствие бюрократии.
Офис в центре Москвы( работа только в офисе, удаленка не рассматривается).
Иногородним - оплата квартиры на первые 2 недели.
#работа #офис

Андрей
21.06.2019
13:48:47

Google

Андрей
21.06.2019
13:50:38
абсолютно такая же ошибка

Алиса
21.06.2019
13:53:15
Ребята вы самоучки? я тоже хочу питон выучить )

Андрей
21.06.2019
13:54:13

Tishka17
21.06.2019
13:54:15
да, он и юзается автоматтом. я ж процитировал. Кажется у теюя не создается тип нужный

Андрей
21.06.2019
13:55:35

Артём
21.06.2019
13:55:41
так у него стоит флаг create-type:false

Андрей
21.06.2019
13:55:52

Артём
21.06.2019
13:55:53
как бы переводится - "создать-тип: нет"

Андрей
21.06.2019
13:55:57
я уже убрад

Tishka17
21.06.2019
13:56:01
я уже про это говорил

Артём
21.06.2019
13:56:34
блин)) давай тогда обновленный код

Алиса
21.06.2019
13:57:14

Tishka17
21.06.2019
13:57:28
кажется у алембика есть какие-то проблемы с енумами, но это не точно

Андрей
21.06.2019
13:57:35
from app.extensions import db
from sqlalchemy.dialects.postgresql import ENUM
user_role = ENUM('teamlead', 'project_manager', 'account_manager', 'deleivery_manager',
name='user_role')
class User(db.Model):
__tablename__ = 'g_user'
id = db.Column(db.BigInteger(), primary_key=True)
phone = db.Column(db.String())
user_role = db.Column(user_role)
token = db.Column(db.String())

Tishka17
21.06.2019
13:57:46
попробуй native_enum=False

Андрей
21.06.2019
13:57:46

Tishka17
21.06.2019
13:58:04
да

Google

Tishka17
21.06.2019
13:58:09
в поле
а вообще хз

Андрей
21.06.2019
13:58:39
nope
не помогло
Идентичная ошибка

Алиса
21.06.2019
13:59:04
а вообще хз
Простите, а что я такого спросил? мне что выучить питон нельзя?

Андрей
21.06.2019
13:59:06
как и до этого

Алиса
21.06.2019
13:59:35

Андрей
21.06.2019
13:59:50
исправил

Tishka17
21.06.2019
13:59:57

Артём
21.06.2019
14:00:38

Андрей
21.06.2019
14:00:48

Tishka17
21.06.2019
14:01:26

Ivan
21.06.2019
14:01:34
Для python есть, что то подобное https://github.com/App-vNext/Polly ?

Tishka17
21.06.2019
14:01:39
то есть файл старой удалил, сгенерил заново?

Андрей
21.06.2019
14:01:50

Артём
21.06.2019
14:04:54
конечно
https://stackoverflow.com/questions/52902162/flask-alembic-error-sqlalchemy-exc-programmingerror-psycopg2-programmingerror
Посмотри комменты тут.

Андрей
21.06.2019
14:05:06

Артём
21.06.2019
14:05:11
там предлагают зарыться в код миграции

Андрей
21.06.2019
14:05:38

Google

Андрей
21.06.2019
14:07:09
не понимаю, там решения нет

Артём
21.06.2019
14:07:58
у чела та же проблема, но у него в коде миграции не добавлено это обновление.
А так всё то же самое, алембики, ошибка создания типа.
ты также можешь использовать эти подсказки и посмотреть свой код миграции, может там не хватает как раз

Tishka17
21.06.2019
14:10:07

Андрей
21.06.2019
14:14:47
файл миграции покажи
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('g_user', sa.Column('user_role', postgresql.ENUM('teamlead', 'project_manager', 'account_manager', 'deleivery_manager', name='user_role'), nullable=True))
# ### end Alembic commands ###

Admin
ERROR: S client not available

Tishka17
21.06.2019
14:15:37
хм
где-то тут ещё создание типа должно быть

Андрей
21.06.2019
14:16:11
руками его вписать?
неужто алмбик не умеет этого

Tishka17
21.06.2019
14:16:42
хз
https://stackoverflow.com/questions/14845203/altering-an-enum-field-using-alembic
немного другое но все же

Проксимов
21.06.2019
14:17:11

Андрей
21.06.2019
14:17:12

Tishka17
21.06.2019
14:17:40
sqlite наверняка не умеет енумы
обычный енум и native_enum=False

Андрей
21.06.2019
14:17:55

Google

Tishka17
21.06.2019
14:18:00
не постгресовый

Андрей
21.06.2019
14:18:05
а куда я их прикручивал?

Tishka17
21.06.2019
14:18:21
блин, я выше цитировал доку
два режима есть
1. нативные енумы для тех БД, где они естье
2. строка и констрейнт

Андрей
21.06.2019
14:19:34

Tishka17
21.06.2019
14:19:48
да блин
алхимийный бычный енум
не постгресовый
и native_enum=False
в качестве параметра ему
field = Enum(YourEnum, native_enum=False)
типа того

Андрей
21.06.2019
14:23:22
NameError: name 'gino' is not defined
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('g_user', sa.Column('user_role', gino.schema.Enum('project_manager', 'account_manager', 'teamlead', 'deleivery_manager', name='userrole'), nullable=True))
# ### end Alembic commands ###
Добавляю import gino
Снова запускаю миграции
получаю
AttributeError: module 'gino.schema' has no attribute 'Enum'

Daniil
21.06.2019
14:23:38

Tishka17
21.06.2019
14:23:55