Exemplo n.º 1
0
    def __init__(self, root_login, root_password=None):
        if root_login:
            if not root_password:
                root_password = getattr(conf, "root_password", None)
            if not root_password:
                root_password = getpass.getpass("MySQL root password: ")

        self.root_password = root_password

        self.conn = webnotes.db.Database(user=root_login,
                                         password=root_password)
        webnotes.conn = self.conn
        webnotes.session = webnotes._dict({'user': '******'})
        self.dbman = DbManager(self.conn)
Exemplo n.º 2
0
def make_scheduler(root_login, root_password, verbose):
    """
		Make the database where all scheduler events will be stored from multiple datbases
		See webnotes.utils.scheduler for more information
	"""
    conn = webnotes.db.Database(user=root_login, password=root_password)

    from webnotes.model.db_schema import DbManager

    dbman = DbManager(conn)

    # delete user (if exists)
    dbman.delete_user('master_scheduler')

    # create user and db
    dbman.create_user('master_scheduler',
                      getattr(webnotes.defs, 'scheduler_password', None))
    if verbose: print "Created user master_scheduler"

    # create a database
    dbman.create_database('master_scheduler')
    if verbose: print "Created database master_scheduler"

    # grant privileges to user
    dbman.grant_all_privileges('master_scheduler', 'master_scheduler')

    # flush user privileges
    dbman.flush_privileges()

    conn.use('master_scheduler')

    # create events table
    conn.sql("""create table Event(
		`db_name` varchar(60),
		`event` varchar(180),
		`interval` int(20),
		`next_execution` timestamp,
		`recurring` int(1),
		primary key (`db_name`, `event`),
		index next_execution(next_execution)
		)""")

    conn.sql("""create table EventLog(
		`db_name` varchar(180), 
		`event` varchar(180),
		`executed_on` timestamp,
		`log` text,
		index executed_on(executed_on))
	""")
Exemplo n.º 3
0
    def __init__(self,
                 root_login,
                 root_password=None,
                 db_name=None,
                 site=None,
                 site_config=None):
        make_conf(db_name, site=site, site_config=site_config)
        self.site = site

        self.make_connection(root_login, root_password)

        webnotes.local.conn = self.conn
        webnotes.local.session = webnotes._dict({'user': '******'})

        self.dbman = DbManager(self.conn)
Exemplo n.º 4
0
    def __init__(self, root_login, root_password):

        import webnotes
        import webnotes.db
        import webnotes.defs

        self.root_password = root_password
        from webnotes.model.db_schema import DbManager

        self.conn = webnotes.db.Database(user=root_login,
                                         password=root_password)
        webnotes.conn = self.conn
        webnotes.session = {'user': '******'}
        self.dbman = DbManager(self.conn)
        self.mysql_path = hasattr(
            webnotes.defs, 'mysql_path') and webnotes.defs.mysql_path or ''
Exemplo n.º 5
0
    def __init__(self, root_login, root_password=None):

        import webnotes
        import webnotes.db

        if root_login and not root_password:
            import getpass
            root_password = getpass.getpass("MySQL root password: ")

        self.root_password = root_password
        from webnotes.model.db_schema import DbManager

        self.conn = webnotes.db.Database(user=root_login,
                                         password=root_password)
        webnotes.conn = self.conn
        webnotes.session = {'user': '******'}
        self.dbman = DbManager(self.conn)
Exemplo n.º 6
0
    def install(self,
                db_name,
                source_sql=None,
                admin_password='******',
                verbose=0,
                force=0):

        if force or (db_name not in self.dbman.get_database_list()):
            # delete user (if exists)
            self.dbman.delete_user(db_name)
        else:
            raise Exception("Database %s already exists" % (db_name, ))

        # create user and db
        self.dbman.create_user(db_name, webnotes.conf.db_password)

        if verbose: print "Created user %s" % db_name

        # create a database
        self.dbman.create_database(db_name)
        if verbose: print "Created database %s" % db_name

        # grant privileges to user
        self.dbman.grant_all_privileges(db_name, db_name)
        if verbose:
            print "Granted privileges to user %s and database %s" % (db_name,
                                                                     db_name)

        # flush user privileges
        self.dbman.flush_privileges()

        # close root connection
        self.conn.close()

        webnotes.connect(db_name=db_name, site=self.site)
        self.dbman = DbManager(webnotes.conn)

        # import in db_name
        if verbose: print "Starting database import..."

        # get the path of the sql file to import
        if not source_sql:
            source_sql = os.path.join(os.path.dirname(webnotes.__file__), "..",
                                      'conf', 'Framework.sql')

        self.dbman.restore_database(db_name, source_sql, db_name,
                                    webnotes.conf.db_password)
        if verbose: print "Imported from database %s" % source_sql

        self.create_auth_table()

        # fresh app
        if 'Framework.sql' in source_sql:
            if verbose: print "Installing app..."
            self.install_app(verbose=verbose)

        # update admin password
        self.update_admin_password(admin_password)

        # create public folder
        from webnotes.install_lib import setup_public_folder
        setup_public_folder.make(site=self.site)

        if not self.site:
            from webnotes.build import bundle
            bundle(False)

        return db_name