39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # flake8: noqa
 | |
| from lifecycle.migrate import BaseMigration
 | |
| from datetime import datetime
 | |
| 
 | |
| from authentik import __version__, get_build_hash
 | |
| 
 | |
| 
 | |
| class Migration(BaseMigration):
 | |
|     def needs_migration(self) -> bool:
 | |
|         self.cur.execute(
 | |
|             """
 | |
|             SELECT * FROM authentik_version_history
 | |
|                 WHERE version = %s AND build = %s
 | |
|                 ORDER BY "timestamp" DESC
 | |
|                 LIMIT 1
 | |
|         """,
 | |
|             (__version__, get_build_hash()),
 | |
|         )
 | |
|         return not bool(self.cur.rowcount)
 | |
| 
 | |
|     def run(self):
 | |
|         self.cur.execute(
 | |
|             """
 | |
|             INSERT INTO authentik_version_history ("timestamp", version, build)
 | |
|                 VALUES (%s, %s, %s)
 | |
|         """,
 | |
|             (datetime.now(), __version__, get_build_hash()),
 | |
|         )
 | |
|         self.cur.execute(
 | |
|             """
 | |
|             DELETE FROM authentik_version_history WHERE id NOT IN (
 | |
|                 SELECT id FROM authentik_version_history
 | |
|                 ORDER BY "timestamp" DESC
 | |
|                 LIMIT 1000
 | |
|             )
 | |
|         """
 | |
|         )
 | |
|         self.con.commit()
 | 
