@ru_python

Страница 9400 из 9768
Андрей
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 (с точки зрения алембика), вырвал из алхимии напрямую

Андрей
21.06.2019
13:40:44
А какой Enum в описании модели юзаешь?
from app.extensions import db import enum from sqlalchemy.types import Enum

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

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

Из диалектов

Андрей
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
я переименовл
ты уверен что create_type тебе над оуказывать?

Андрей
21.06.2019
13:45:42
ты уверен что create_type тебе над оуказывать?
уверен, что нет я на стэке нашел это, попробовал - разницы нет

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
да, он и юзается автоматтом. я ж процитировал. Кажется у теюя не создается тип нужный
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedObject) ОШИБКА: тип "user_role" не существует LINE 1: ALTER TABLE g_user ADD COLUMN user_role user_role ^ [SQL: ALTER TABLE g_user ADD COLUMN user_role user_role] Ну да Я и хочу выяснить почему :D

Артём
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
блин)) давай тогда обновленный код

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
Tishka17
21.06.2019
14:01:26
nope не помогло
ты точно пересоздал миграцию?

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:04:54
конечно
https://stackoverflow.com/questions/52902162/flask-alembic-error-sqlalchemy-exc-programmingerror-psycopg2-programmingerror Посмотри комменты тут.

Артём
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
обычный енум и native_enum=False
а обычный енум нужно же обернуть в тип алхимии

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

Страница 9400 из 9768