Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

# Copyright (C) 2019 Bloomberg LP 

# 

# Licensed under the Apache License, Version 2.0 (the "License"); 

# you may not use this file except in compliance with the License. 

# You may obtain a copy of the License at 

# 

# <http://www.apache.org/licenses/LICENSE-2.0> 

# 

# Unless required by applicable law or agreed to in writing, software 

# distributed under the License is distributed on an "AS IS" BASIS, 

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

# See the License for the specific language governing permissions and 

# limitations under the License. 

 

from logging.config import fileConfig 

 

from alembic import context 

from sqlalchemy import engine_from_config 

from sqlalchemy import pool 

 

from buildgrid.server.persistence.sql.models import Base 

 

 

# this is the Alembic Config object, which provides 

# access to the values within the .ini file in use. 

config = context.config 

 

# Interpret the config file for Python logging. 

# This line sets up loggers basically. 

try: 

fileConfig(config.config_file_name) 

except TypeError: 

pass 

 

target_metadata = Base.metadata 

 

# other values from the config, defined by the needs of env.py, 

# can be acquired: 

# my_important_option = config.get_main_option("my_important_option") 

# ... etc. 

 

 

def run_migrations_offline(): # pragma: no cover 

"""Run migrations in 'offline' mode. 

 

This configures the context with just a URL 

and not an Engine, though an Engine is acceptable 

here as well. By skipping the Engine creation 

we don't even need a DBAPI to be available. 

 

Calls to context.execute() here emit the given string to the 

script output. 

 

""" 

url = config.get_main_option("sqlalchemy.url") 

context.configure( 

url=url, target_metadata=target_metadata, literal_binds=True 

) 

 

with context.begin_transaction(): 

context.run_migrations() 

 

 

def run_migrations_online(): # pragma: no cover 

"""Run migrations in 'online' mode. 

 

In this scenario we need to create an Engine 

and associate a connection with the context. 

 

""" 

connection = config.attributes['connection'] 

 

context.configure( 

connection=connection, target_metadata=target_metadata 

) 

 

with context.begin_transaction(): 

context.run_migrations() 

 

 

if context.is_offline_mode(): # pragma: no cover 

run_migrations_offline() 

else: # pragma: no cover 

run_migrations_online()