airflow setup on windows

I am trying to install airflow for the first time on my local machine. As part of the process I have installed :
python 3.12.4
VSCode for executing python commands and downloading necessary packages for airflow.

As part of installation steps I have executed below commands:

mkdir airflow_project

cd airflow_project

python -m venv venv_airflow

.venv_airflowScriptsActivate

pip install --upgrade pip

I dont see airflow.cfg in the airflow folder, so I copied it from config_templates folder into airflow folder as airflow.cfg and edited it. Is that right?

Edited the airflow.cfg and replaced the values for line:
sql_alchemy_conn = snowflake://:@/?warehouse=&schema=&role=

I couldn’t find airflow.cfg in the airflow folder, so I copied it from config_templates folder into airflow folder as airflow.cfg and edited it. Is that right?

airflow db init

(venv_aaairflow4) PS C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflow> airflow db migrate
C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflow__init__.py:36: RuntimeWarning: Airflow currently can be run on POSIX-compliant Operating Systems. For development, it is regularly tested on fairly modern Linux Distros and recent versions of macOS. On Windows you can run it via WSL2 (Windows Subsystem for Linux 2) or via Linux Containers. The work to add Windows support is tracked via https://github.com/apache/airflow/issues/10388, but it is not a high priority.
  warnings.warn(
OSError while attempting to symlink the latest log directory
[2024-06-12T15:21:10.847+0100] {connection.py:399} INFO - Snowflake Connector for Python Version: 3.10.1, Python Version: 3.12.4, Platform: Windows-10-10.0.19043-SP0
[2024-06-12T15:21:10.850+0100] {connection.py:1239} INFO - This connection is in OCSP Fail Open Mode. TLS Certificates would be checked for validity and revocation status. Any other Certificate Revocation related exceptions or OCSP Responder failures would be disregarded in favor of connectivity.
[2024-06-12T15:21:11.559+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:11.617+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:11.727+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:11.765+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:11.766+0100] {cli_action_loggers.py:137} WARNING - Failed to log action (snowflake.connector.errors.ProgrammingError) 002003 (42S02): 01b4f61d-0000-9962-0000-6ee900017106: SQL compilation error:
Table 'LOG' does not exist or not authorized.
[SQL: INSERT INTO log (dttm, event, owner, extra) VALUES (%(dttm)s, %(event)s, %(owner)s, %(extra)s)]
[parameters: {'dttm': datetime.datetime(2024, 6, 12, 14, 21, 10, 847011, tzinfo=Timezone('UTC')), 'event': 'cli_migratedb', 'owner': 'XXXXXXX', 'extra': '{"host_name": "LAP11171", "full_command": "['C:\\\\Users\\\\XXXXXXX\\\\proj_airflow\\\\venv_aaairflow4\\\\Scripts\\\\airflow', 'db', 'migrate']"}'}]
(Background on this error at: https://sqlalche.me/e/14/f405)
DB: snowflake://AIRFLOWADMIN:***@icfnm-ld92/AIRFLOW?role=RL_AIRFLOW_ADMIN&schema=SCHAIRFLOW&warehouse=WHSTDXSAIRFLOW
Performing upgrade to the metadata database snowflake://AIRFLOWADMIN:***@icfnm-ld092/AIRFLOW?role=RL_AIRFLOW_ADMIN&schema=SCHAIRFLOW&warehouse=WHSTDXSAIRFLOW
[2024-06-12T15:21:12.019+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.130+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.193+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.254+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.332+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.382+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.419+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.455+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.495+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.547+0100] {cursor.py:1149} INFO - Number of results in first chunk: 0
[2024-06-12T15:21:12.584+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.621+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.657+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.698+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.743+0100] {cursor.py:1149} INFO - Number of results in first chunk: 0
[2024-06-12T15:21:12.792+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.838+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.874+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.912+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:12.962+0100] {cursor.py:1149} INFO - Number of results in first chunk: 0
[2024-06-12T15:21:12.999+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.034+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.076+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.114+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.168+0100] {cursor.py:1149} INFO - Number of results in first chunk: 0
[2024-06-12T15:21:13.207+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.242+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.277+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.317+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.361+0100] {cursor.py:1149} INFO - Number of results in first chunk: 0
[2024-06-12T15:21:13.400+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.440+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.478+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.516+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.574+0100] {cursor.py:1149} INFO - Number of results in first chunk: 0
[2024-06-12T15:21:13.614+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.651+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.690+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.731+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.788+0100] {cursor.py:1149} INFO - Number of results in first chunk: 0
[2024-06-12T15:21:13.834+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.874+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.920+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:13.969+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.016+0100] {cursor.py:1149} INFO - Number of results in first chunk: 0
[2024-06-12T15:21:14.053+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.093+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.187+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.224+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.263+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.343+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.382+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.419+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.459+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
[2024-06-12T15:21:14.497+0100] {cursor.py:1149} INFO - Number of results in first chunk: 1
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Scriptsairflow.exe__main__.py", line 7, in <module>
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflow__main__.py", line 58, in main
    args.func(args)
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflowclicli_config.py", line 49, in command
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflowutilscli.py", line 114, in wrapper
    return f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflowutilsproviders_configuration_loader.py", line 55, in wrapped_function
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflowclicommandsdb_command.py", line 130, in migratedb
    db.upgradedb(
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflowutilssession.py", line 79, in wrapper
    return func(*args, session=session, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflowutilsdb.py", line 1617, in upgradedb
    if not to_revision and not _get_current_revision(session=session) and not use_migration_files:
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesairflowutilsdb.py", line 790, in _get_current_revision
    migration_ctx = MigrationContext.configure(conn)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesalembicruntimemigration.py", line 280, in configure
    return MigrationContext(dialect, connection, opts, environment_context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesalembicruntimemigration.py", line 208, in __init__
    self.impl = ddl.DefaultImpl.get_by_dialect(dialect)(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:UsersXXXXXXXproj_airflowvenv_aaairflow4Libsite-packagesalembicddlimpl.py", line 133, in get_by_dialect
    return _impls[dialect.name]
           ~~~~~~^^^^^^^^^^^^^^
KeyError: 'snowflake'
[2024-06-12T15:21:14.505+0100] {connection.py:762} INFO - closed
[2024-06-12T15:21:14.506+0100] {connection.py:768} INFO - No async queries seem to be running, deleting session

I am able connect to snowflake cloud using a python script outside virtual environment. So I am sure my username password and other parameters to connect snowflake, are correct. But when I use the same parameters in the airflow.cfg it starts throwing errors.

I tried installing several supporting packages but they didnt work. Ended up getting the same error.
Can you help me resolving the issue?

New contributor

vital_parsley is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật