@@ -57,13 +57,14 @@ class DbManage(object):
def init_db(self):
engine = create_engine(self.dburi, echo=self.log_sql)
init_model(engine)
self.sa = meta.Session
def create_tables(self, override=False):
"""Create a auth database
"""
Create a auth database
log.info("Any existing database is going to be destroyed")
if self.tests:
destroy = True
else:
@@ -83,13 +84,14 @@ class DbManage(object):
ver.repository_id = 'rhodecode_db_migrations'
ver.repository_path = 'versions'
self.sa.add(ver)
log.info('db version set to: %s', __dbversion__)
def upgrade(self):
"""Upgrades given database schema to given revision following
Upgrades given database schema to given revision following
all needed steps, to perform the upgrade
from rhodecode.lib.dbmigrate.migrate.versioning import api
from rhodecode.lib.dbmigrate.migrate.exceptions import \
@@ -122,13 +124,14 @@ class DbManage(object):
sys.exit('This database is already at the newest version')
#======================================================================
# UPGRADE STEPS
class UpgradeSteps(object):
"""Those steps follow schema versions so for example schema
Those steps follow schema versions so for example schema
for example schema with seq 002 == step_2 and so on.
def __init__(self, klass):
self.klass = klass
@@ -163,13 +166,14 @@ class DbManage(object):
#CALL THE PROPER ORDER OF STEPS TO PERFORM FULL UPGRADE
for step in upgrade_steps:
print ('performing upgrade step %s' % step)
getattr(UpgradeSteps(self), 'step_%s' % step)()
def fix_repo_paths(self):
"""Fixes a old rhodecode version path into new one without a '*'
Fixes a old rhodecode version path into new one without a '*'
paths = self.sa.query(RhodeCodeUi)\
.filter(RhodeCodeUi.ui_key == '/')\
.scalar()
@@ -180,13 +184,14 @@ class DbManage(object):
self.sa.commit()
except:
self.sa.rollback()
raise
def fix_default_user(self):
"""Fixes a old default user with some 'nicer' default values,
Fixes a old default user with some 'nicer' default values,
used mostly for anonymous access
def_user = self.sa.query(User)\
.filter(User.username == 'default')\
.one()
@@ -199,13 +204,14 @@ class DbManage(object):
def fix_settings(self):
"""Fixes rhodecode settings adds ga_code key for google analytics
Fixes rhodecode settings adds ga_code key for google analytics
hgsettings3 = RhodeCodeSetting('ga_code', '')
try:
self.sa.add(hgsettings3)
@@ -243,31 +249,32 @@ class DbManage(object):
email = raw_input('Specify admin email:')
self.create_user(username, password, email, True)
log.info('creating admin and regular test users')
from rhodecode.tests import TEST_USER_ADMIN_LOGIN,\
TEST_USER_ADMIN_PASS ,TEST_USER_ADMIN_EMAIL,TEST_USER_REGULAR_LOGIN,\
TEST_USER_REGULAR_PASS,TEST_USER_REGULAR_EMAIL,\
TEST_USER_REGULAR2_LOGIN,TEST_USER_REGULAR2_PASS,\
TEST_USER_REGULAR2_EMAIL
TEST_USER_ADMIN_PASS, TEST_USER_ADMIN_EMAIL,\
TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS,\
TEST_USER_REGULAR_EMAIL, TEST_USER_REGULAR2_LOGIN, \
TEST_USER_REGULAR2_PASS, TEST_USER_REGULAR2_EMAIL
self.create_user(TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS,
TEST_USER_ADMIN_EMAIL, True)
self.create_user(TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS,
TEST_USER_REGULAR_EMAIL, False)
self.create_user(TEST_USER_REGULAR2_LOGIN, TEST_USER_REGULAR2_PASS,
TEST_USER_REGULAR2_EMAIL, False)
def create_ui_settings(self):
"""Creates ui settings, fills out hooks
Creates ui settings, fills out hooks
and disables dotencode
#HOOKS
hooks1_key = RhodeCodeUi.HOOK_UPDATE
hooks1_ = self.sa.query(RhodeCodeUi)\
.filter(RhodeCodeUi.ui_key == hooks1_key).scalar()
hooks1 = RhodeCodeUi() if hooks1_ is None else hooks1_
@@ -302,13 +309,13 @@ class DbManage(object):
dotencode_disable.ui_value = 'false'
# enable largefiles
largefiles = RhodeCodeUi()
largefiles.ui_section = 'extensions'
largefiles.ui_key = 'largefiles'
largefiles.ui_value = '1'
largefiles.ui_value = ''
self.sa.add(hooks1)
self.sa.add(hooks2)
self.sa.add(hooks3)
self.sa.add(hooks4)
self.sa.add(largefiles)
@@ -348,13 +355,12 @@ class DbManage(object):
#check write access
if not os.access(path, os.W_OK) and path_ok:
path_ok = False
log.error('No write permission to given path %s', path)
if retries == 0:
sys.exit('max retries reached')
if path_ok is False:
retries -= 1
return self.config_prompt(test_repo_path, retries)
Status change: