Compare commits
9 Commits
5b09353b06
...
1af9a7b4d9
| Author | SHA1 | Date | |
|---|---|---|---|
| 1af9a7b4d9 | |||
| de9c0e6724 | |||
| 3ad35c6980 | |||
| b5a2938b12 | |||
| 9af6b71712 | |||
| bda32cca6a | |||
| b23c1a8b62 | |||
| 882a06f226 | |||
| 50b329bd35 |
@@ -1,14 +1,8 @@
|
|||||||
import os
|
import os
|
||||||
import asyncpg
|
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
|
||||||
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine, session
|
|
||||||
import dotenv
|
|
||||||
|
|
||||||
# connection = psycopg2.connect(*(os.getenv(key) for key in ["DATABASE", "DB_HOST", "DB_USER", "DB_PASSWORD"]))
|
|
||||||
# connection.autocommit = True
|
|
||||||
|
|
||||||
dotenv.load_dotenv(".env")
|
|
||||||
DATABASE_URL = (f"postgresql+asyncpg://{os.getenv('DB_USER')}:{os.getenv('DB_PASSWORD')}@"
|
DATABASE_URL = (f"postgresql+asyncpg://{os.getenv('DB_USER')}:{os.getenv('DB_PASSWORD')}@"
|
||||||
f"{os.getenv('DB_HOST')}/{os.getenv('DATABASE')}")
|
f"{os.getenv('DB_HOST')}/{os.getenv('DATABASE')}")
|
||||||
print(DATABASE_URL)
|
|
||||||
engine = create_async_engine(DATABASE_URL, echo=True)
|
engine = create_async_engine(DATABASE_URL, echo=True)
|
||||||
async_session_ = async_sessionmaker(bind=engine, expire_on_commit=False)
|
async_session_ = async_sessionmaker(bind=engine, expire_on_commit=False)
|
||||||
|
|||||||
@@ -13,10 +13,11 @@ class Base(DeclarativeBase):
|
|||||||
class Worker(Base):
|
class Worker(Base):
|
||||||
"""
|
"""
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
telegram_id INTEGER UNIQUE NOT NULL,
|
telegram_id BIGINT UNIQUE NOT NULL,
|
||||||
name VARCHAR NOT NULL,
|
name VARCHAR NOT NULL,
|
||||||
email VARCHAR(50),
|
email VARCHAR(50),
|
||||||
phone_number VARCHAR(20) NOT NULL,
|
phone_number VARCHAR(20),
|
||||||
|
job_title job_title default 'Сборщик',
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at TIMESTAMP
|
updated_at TIMESTAMP
|
||||||
"""
|
"""
|
||||||
@@ -27,7 +28,7 @@ class Worker(Base):
|
|||||||
name = Column(String, nullable=False)
|
name = Column(String, nullable=False)
|
||||||
email = Column(String, nullable=True)
|
email = Column(String, nullable=True)
|
||||||
phone_number = Column(String, default=None)
|
phone_number = Column(String, default=None)
|
||||||
job_title = Column(job_title, default='Сборщик'),
|
job_title = Column(job_title, default='Сборщик')
|
||||||
created_at = Column(Date, server_default=func.now())
|
created_at = Column(Date, server_default=func.now())
|
||||||
updated_at = Column(Date, onupdate=func.now())
|
updated_at = Column(Date, onupdate=func.now())
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
import logging
|
import os
|
||||||
|
from typing import Any
|
||||||
from aiogram.types import Message, CallbackQuery
|
from aiogram.types import Message, CallbackQuery
|
||||||
from aiogram.filters import BaseFilter
|
from aiogram.filters import BaseFilter
|
||||||
from keyboards.menu_commands import commands
|
from keyboards.menu_commands import commands
|
||||||
import os
|
|
||||||
|
|
||||||
loggger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1,4 @@
|
|||||||
from .Filters import IsAdmin
|
from .Filters import IsAdmin
|
||||||
|
from .Filters import IsRegister
|
||||||
|
|
||||||
|
__all__ = ["IsRegister", "IsAdmin"]
|
||||||
38
drone.yaml
38
drone.yaml
@@ -17,31 +17,39 @@ steps:
|
|||||||
- name: dockersock
|
- name: dockersock
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
commands:
|
commands:
|
||||||
- docker build -t myapp:${DRONE_COMMIT_SHA} .
|
- docker build -t myapp:${DRONE_COMMIT_BRANCH} .
|
||||||
|
|
||||||
- name: deploy
|
- name: deploy
|
||||||
image: alpine
|
image: docker
|
||||||
|
volumes:
|
||||||
|
- name: dockersock
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
- name: env
|
||||||
|
path: /srv/prod/telegram_bot/
|
||||||
environment:
|
environment:
|
||||||
ENV_CONTENT:
|
TOKEN:
|
||||||
from_secret: DOT_ENV_CONTENT
|
from_secret: TOKEN
|
||||||
|
BOT_ADMINS:
|
||||||
|
from_secret: BOT_ADMINS
|
||||||
|
DATABASE:
|
||||||
|
from_secret: DATABASE
|
||||||
|
DB_HOST:
|
||||||
|
from_secret: DB_HOST
|
||||||
|
DB_USER:
|
||||||
|
from_secret: DB_USER
|
||||||
|
DB_PASSWORD:
|
||||||
|
from_secret: DB_PASSWORD
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache openssh
|
|
||||||
- echo "$ENV_CONTENT" > .env
|
- echo "$ENV_CONTENT" > .env
|
||||||
settings:
|
|
||||||
host: localhost
|
|
||||||
username: ronis_0505
|
|
||||||
password: 667766
|
|
||||||
script:
|
|
||||||
- docker pull myapp:${DRONE_COMMIT_SHA}
|
|
||||||
- docker stop myapp || true
|
- docker stop myapp || true
|
||||||
- docker rm myapp || true
|
- docker rm myapp || true
|
||||||
- docker run -d --name myapp \
|
- docker run --name=myapp --network=prod_net -v /srv/prod/telegram_bot/photos:/app/photos/ -v /srv/prod/telegram_bot/.env:/app/.env:ro myapp:${DRONE_COMMIT_BRANCH}
|
||||||
--network prod_net \
|
|
||||||
-v /srv/prod/telegram_bot/photos:/app/photos/ \
|
|
||||||
myapp:${DRONE_COMMIT_SHA}
|
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: dockersock
|
- name: dockersock
|
||||||
host:
|
host:
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
|
- name: env
|
||||||
|
host:
|
||||||
|
path: /srv/prod/telegram_bot/
|
||||||
Reference in New Issue
Block a user